从MYSQL中选择Blob,得到null

时间:2013-04-11 12:28:17

标签: php mysql json blob

从MySQL中选择blob时,我需要做些什么特别的事情吗?我得到以下NULL(数据是mediumblob,file_extension是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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用CAST将其转换为文字

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