gpt4 book ai didi

PHP:使用 PDO 从 MySQL 中检索图像

转载 作者:可可西里 更新时间:2023-11-01 08:55:10 27 4
gpt4 key购买 nike

我正在重构一些旧代码,包括重写基本的 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 适用于所有类型的所有其他查询。

最佳答案

需要参数化imageid值并将参数绑定(bind)到PDO::PARAM_LOB:

$sql = "SELECT image FROM image WHERE imageid=:id";
$query = $db_conn->prepare($sql);
$query->execute(array(':id' => $image_id));

$query->bindColumn(1, $image, PDO::PARAM_LOB);
$query->fetch(PDO::FETCH_BOUND);
header("Content-Type: image");
echo $image;

当然,您还需要指定完整、正确的内容类型(例如,image/png)。

关于PHP:使用 PDO 从 MySQL 中检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999466/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com