You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将数据库URL赋值给变量并在页面底部调用展示?

解决PHP中从PDO结果获取图片URL并展示的问题

你遇到的核心问题是**fetchALL()返回的是包含多行数据的二维数组**,但你直接用$result['img_url']去访问单个字段——这显然行不通,因为$result里的每个元素才是单条记录的关联数组。另外页面底部的<a>标签用法也有误,<a>没有src属性,要展示图片得用<img>标签。

下面是具体的修正方案:

1. 调整数据获取方式

如果id_img = '3'对应的记录是唯一的,推荐用fetch()替代fetchALL(),这样直接得到单条记录的关联数组,就能正确拿到img_url:

$result = $query->fetch(PDO::FETCH_ASSOC); // 替换fetchALL为fetch
$image = $result['img_url'];

如果确实需要获取多条记录,那要从数组的第一个元素里取img_url:

$result = $query->fetchALL(PDO::FETCH_ASSOC);
$image = $result[0]['img_url']; // 取第一条记录的img_url

2. 修正页面底部的图片展示代码

<a>标签没有src属性,如果你想展示图片,直接用<img>标签;如果需要给图片加跳转链接,就用<a>包裹<img>:

<body>
  <!-- 直接展示图片 -->
  <img src='<?php echo $image; ?>' border='0' alt="商品图片">
  <!-- 给图片加跳转链接 -->
  <a href="你的目标链接">
    <img src='<?php echo $image; ?>' border='0' alt="商品图片">
  </a>
</body>

完整修正后的代码

<?php 
try{ 
    include("dbconnectie.php"); 
    $query = $db->prepare("SELECT * FROM shop WHERE id_img = '3'"); 
    $query->execute(); 
    // 改用fetch获取单条记录
    $result = $query->fetch(PDO::FETCH_ASSOC); 
    $image = $result['img_url']; 
    
    echo "<table>"; 
    // 单条记录无需循环,直接输出
    echo "<tr>"; 
    echo "<td>" . $result["brand"] . "</td>"; 
    echo "<td>" . $result["model"] . "</td>"; 
    echo "<td>" . $result["cond"] . "</td>"; 
    echo "<td>" . $result["price"] . "</td>"; 
    echo '<td><img src="data:image/png;base64,'.base64_encode( $result["image"] ).'"/></td>'; // 将图片放入td,保证表格结构合规
    echo "</tr>"; 
    echo "</table>"; 
} catch(PDOException $e) { 
    die("Error!: " . $e->getMessage()); 
} 
?> 
<html> 
<body> 
  <img src='<?php echo $image; ?>' border='0' alt="商品图片">
</body> 
</html>

额外提个小细节:原来的代码里把<img>直接放在<tr>中,没有包裹在<td>里,这会破坏表格的结构,修正后把图片放到了<td>内,让HTML结构更规范。

内容的提问来源于stack exchange,提问作者Arjen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:55:17