2

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 のブロブが表示されます

何かご意見は?

4

1 に答える 1

2

CASTテキストに変換するために使用します

$sql = "SELECT CAST(data AS CHAR(10000) CHARACTER SET utf8) as data, file_extension FROM table1 WHERE table1.id = ?";
于 2013-04-11T12:30:33.280 に答える