从MYSQL选择Blob,获取空值 [英] Selecting Blob from MYSQL, getting null

查看:318
本文介绍了从MYSQL选择Blob,获取空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从MySQL中选择Blob时,我需要做些特别的事情吗?对于以下内容,我得到一个NULL(数据是一个中等级别的文件,file_extension是varchar):

Is there anything special I need to do when selecting a blob from MySQL? I get a NULL for the following (data is a mediumblob, file_extension is varchar):

$sql = "SELECT data, file_extension FROM table1 WHERE table1.id = ?";
$q = $con->prepare($sql);
$q->execute(array(1));

if ($q->rowCount() == 0)
{
    disconnectSqlConnection($con);
    $arr = array('success' => 'false',
                 'error'   => -2);
    return json_encode($arr);
}
else
{
    $row = $q->fetch();
    $arr = array('success'   => 'true',
                 'data'      => $row[0],
                 'extension' => $row[1]);
    disconnectSqlConnection($con);
    return json_encode($arr);
}

$ row [1]具有"pdf",这是正确的. $ row [0]为NULL,但在数据库中,我看到大小为244.8KB的blob

$row[1] has 'pdf', which is correct. $row[0] is NULL, but in the database, I see a blob of size 244.8KB

有什么想法吗?

推荐答案

使用CAST将其转换为文本

$sql = "SELECT CAST(data AS CHAR(10000) CHARACTER SET utf8) as data, file_extension FROM table1 WHERE table1.id = ?";

这篇关于从MYSQL选择Blob,获取空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆