使用php PDO从mysql读取BLOB

时间:2012-01-19 01:35:28

标签: php mysql pdo blob

我有一个带有BLOB字段的数据库(weeklyOccupancy)。我试图使用以下方法访问PHP中的数据:

$sqlCmd = 'select weeklyOccupancy from Occupancy order by startDate;';
$pdoStmt = $dbh->query($sqlCmd);
$pdoStmt->bindColumn(1, $lob, PDO::PARAM_LOB);
$pdoStmt->fetch(PDO::FETCH_BOUND);
foreach($pdoStmt as $row){
    $weeklyData = stream_get_contents($lob); 
    ....
}

但是,stream_get_contents说$ lob是一个字符串(名为“资源ID#1”)虽然我认为它应该是一个流。我已经看到这提到了一个bug(http://www.php.net/manual) /en/pdo.lobs.php#96311)但解决方法与我的应用程序无关 - blob中包含一个字符串而不是要显示的图像。

我是如何从PHP中的blob字段中获取数据的?感谢

2 个答案:

答案 0 :(得分:0)

并非所有PDO驱动程序都将LOB作为文件流返回; mysql 5就是一个例子。您可以尝试在绑定后将lob视为字符串。

答案 1 :(得分:0)

糟糕。我的代码中有一个早期错误。问题消失了。