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

无法从MySQL检索图片:PHP读取数据库图片失败求助

图片无法显示问题排查

问题背景

通过MySQL创建product表并存储图片文件名,PHP页面无法正常显示图片,图片文件与PHP文件处于同一目录。相关代码如下:

PHP代码片段

<?php
    
require_once "dbconfig.php";
$select_stmt=$db->prepare("SELECT * FROM product"); 
$select_stmt->execute();
while($row=$select_stmt->fetch(PDO::FETCH_ASSOC))
{
?>
  <div class="col-lg-4 col-md-6 mb-4">
        <div class="card h-100">
    <a href="#"><img class="card-img-top" src="images/<?php echo $row['product_image']; ?>"</a>
    <div class="card-body">
      <h4 class="card-title text-primary"><?php echo $row['product_name']; ?> </h4>
              <h5><?php echo number_format($row['product_price'],2); ?>/-</h5>
          </div>
      
          <div class="card-footer">
      <form class="form-submit">
        <input type="hidden" class="pid" value="<?php echo $row['product_id']; ?>">
        <input type="hidden" class="pname" value="<?php echo $row['product_name']; ?>">
        <input type="hidden" class="pprice" value="<?php echo $row['product_price']; ?>">
        <input type="hidden" class="pimage" value="<?php echo $row['product_image']; ?>">
        <input type="hidden" class="pcode" value="<?php echo $row['product_code']; ?>">
        <button id="addItem" class="btn btn-success btn-md">Add to Cart</button>
      </form>
          </div>

MySQL建表语句

CREATE TABLE IF NOT EXISTS product (
    product_id int(11) NOT NULL,
    product_name varchar(100) NOT NULL,
    product_price varchar(50) NOT NULL,
    product_image varchar(255) NOT NULL,
    product_code varchar(10) NOT NULL
)

数据插入语句

INSERT INTO product (product_id, product_name, product_price, product_image, product_code) 
VALUES (1, 'laptop', '200', 'laptop.jpg', 'p1000');

排查步骤及修复方案

  • 路径错误:
    PHP代码中图片路径写为images/<?php echo $row['product_image']; ?>,但你明确说明图片与PHP文件在同一目录,因此需要去掉images/前缀,修改为:

    <img class="card-img-top" src="<?php echo $row['product_image']; ?>" alt="<?php echo $row['product_name']; ?>">
    
  • HTML语法错误:
    原代码中的<img>标签未闭合,缺少结尾的>,这会导致浏览器解析失败,必须补充完整标签结构(同时建议添加alt属性提升可访问性)。

  • 数据库数据验证:
    确认product_image字段存储的文件名无拼写错误、多余空格,且与实际图片文件名完全一致(注意Linux服务器区分大小写,如Laptop.jpg和laptop.jpg视为不同文件)。

  • 文件权限检查:
    确保图片文件的权限允许Web服务器读取,Linux环境下建议设置文件权限为644,所在目录权限为755。

  • 额外优化建议:
    product_price字段当前为varchar类型,使用number_format处理时若存储非数字内容会报错,建议修改为decimal(10,2)类型更符合价格存储需求:

    ALTER TABLE product MODIFY product_price decimal(10,2) NOT NULL;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:37:04