【发布时间】:2011-08-25 08:41:24
【问题描述】:
我正在重构一些旧代码,包括重写基本的 mysql 查询以使用 PDO。
以下内容在所有浏览器和所有图像类型中都表现出色:
$query = 'SELECT image FROM image WHERE imageid=' . $image_id;
$result = mysql_query($query, $db_conn); querycheck($result);
header("Content-type: image");
echo mysql_result($result, 0);
不幸的是,但是我使用 PDO 重写它,它不起作用。我浏览了整个 PDO 文档和标准网络搜索,但没有任何建议/解决方案起作用。
如何使用 PDO 从 MySQL 轻松获取图像并显示出来?
编辑 1:
Matthew Ratzloff 在下面给出了应该是显而易见的答案,但它不起作用。 这是我使用 PDO 测试的实际代码(我尝试了许多变体/参数):
$connectstring_temp = 'mysql:host=' . $A . ';dbname=' .$B;
$dbh_temp = new PDO($connectstring_temp, $login, $password);
#$dbh_temp->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
#$dbh_temp->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
$sql = "SELECT image FROM image WHERE imageid=" . $image_id;
$query = $dbh_temp->prepare($sql);
$query->execute();
$query->bindColumn(1, $image, PDO::PARAM_LOB);
$query->fetch(PDO::FETCH_BOUND);
header("Content-Type: image");
echo $image;
我保留了相同的语法,尽管对于最终代码,$image_id 需要作为参数传递。上面的代码不起作用。 PDO 适用于所有类型的所有其他查询。
【问题讨论】:
-
您为 PDO 重写的代码可能会更有帮助。
-
我发布了我测试过的答案,然后你只需修改