从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
有什么想法吗?
答案 0 :(得分:2)
使用CAST
将其转换为文字
$sql = "SELECT CAST(data AS CHAR(10000) CHARACTER SET utf8) as data, file_extension FROM table1 WHERE table1.id = ?";