【问题标题】:Image not displaying using PDO [duplicate]使用 PDO 不显示图像 [重复]
【发布时间】:2016-10-08 13:03:54
【问题描述】:

我使用 mysqli 从 MySQL 中检索 blob 图像,但我一直在将所有内容转移到 PDO。据我所知,这应该有效。我已经在论坛中搜索并搜索了答案,但我不明白为什么这不起作用。

// Connection
include 'pdo_db.php';

// Get Image Id for DB Query
$recipe = $_GET['recipe'];

// Execute Query<br>
$query = $db->prepare("SELECT * FROM myrecipes WHERE Id = ?");
$query->execute(array(
    "Id" => $recipe
));

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

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

我做了两个假设:1)您的 id 是数字整数,2)您一次只需要检索 1 行(每个 id 1 行)。

$recipe = (int)$_GET['recipe'];

$query = $db->prepare("SELECT * FROM myrecipes WHERE Id = ? LIMIT 1");
$query->execute(array($recipe));

您将execute 中的数组引用为[id]=>$recipe,但这不是必需的。您至少需要自动处理一个数字引用。

你不应该做SELECT *,而是只指定你想要的列,而不是多个表列。

【讨论】:

  • 根据您的假设正确。它是从该行中提取具有该配方 ID 的一张图像。我已经根据您的建议更新了脚本,但仍然在不显示图像的地方?我在 SO 中使用此示例中的核心代码:stackoverflow.com/questions/5999466/…
  • 您应该为数据指定列名,而不是 SELECT *
  • 谢谢。菜鸟错误:/来自新手的 +1。
  • @Pez 很高兴你找到它:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 2019-12-03
  • 2017-02-17
  • 2022-11-13
  • 1970-01-01
  • 2017-12-24
  • 2020-02-25
相关资源
最近更新 更多