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

PHP读取MySQL数据填充HTML表格时代码被直接输出问题排查

故障原因及修复方案

1. 核心问题:PHP代码未被服务端解析

你遇到的代码片段直接打印到页面、$row['EXAMPLE']这类变量原样显示的问题,本质是Web服务器没有把文件里的PHP代码交给解析引擎执行,直接把代码当普通HTML文本输出了,触发场景一般是两种:

  • 文件后缀是.html/.htm而非.php:默认配置下Web服务器只会对.php后缀的文件做PHP解析,静态后缀文件会直接原样返回给浏览器。
  • 访问方式不对:直接双击本地文件用file://协议打开,或者没有把文件放到Web服务器的运行目录下通过HTTP地址(如http://localhost/xxx.php)访问,这种情况完全不会经过服务端处理。

浏览器遇到<?php这类无法识别的标签时,会将其当做自定义HTML标签处理,标签内部的代码一部分被识别为标签属性、一部分被当做普通文本渲染,就会出现你看到的半截PHP代码直接露在页面上的现象。

修复方法:把文件后缀改为.php,放到Web服务器的站点目录下,通过对应的HTTP访问地址打开。

2. 代码存在语法错误

你写的循环输出逻辑里,echo语句末尾缺少PHP要求的分号结束符,就算PHP正常解析,这处错误也会导致脚本直接中断:

// 原错误写法,echo语句末尾缺分号
echo  "<tr>
        <td>" . $row['EXAMPLE'] . "</td>
        <td>" . $row['EXAMPLE2'] . "</td>
        </tr>"

}

修复方法:在echo语句的字符串闭合引号后补分号,改成</tr>";。更推荐直接把PHP和HTML拆分开写,不要把整段HTML拼在echo字符串里,能减少很多语法错误,可读性也更高。

3. 缺少必要的错误捕获逻辑

你当前的代码没有做任何错误判断,一旦数据库连接失败、SQL语句写错,后续逻辑会直接报致命错误,也看不到具体报错信息:

  • 连接数据库后要先判断是否连接成功,再执行查询
  • 执行SQL后要判断查询是否成功,再遍历结果集
  • 记得设置字符集,避免中文乱码

可直接参考的修复后完整代码:

<?php
// 数据库连接配置
$host = "example";
$username = "example";
$password = "example";
$database = "example";

$con = new mysqli($host, $username, $password, $database);
// 检查连接状态
if ($con->connect_error) {
    die("数据库连接失败:" . $con->connect_error);
}
// 设置字符集
$con->set_charset("utf8mb4");

$sql = "SELECT EXAMPLE, EXAMPLE2 FROM EXAMPLE";
$result = $con->query($sql);
// 检查查询执行状态
if (!$result) {
    die("SQL执行错误:" . $con->error);
}
?>
<table border="1" cellpadding="8">
    <thead>
        <tr>
            <th>EXAMPLE</th>
            <th>EXAMPLE2</th>
        </tr>
    </thead>
    <tbody>
        <?php while ($row = $result->fetch_assoc()) { ?>
        <tr>
            <td><?php echo $row['EXAMPLE']; ?></td>
            <td><?php echo $row['EXAMPLE2']; ?></td>
        </tr>
        <?php }
        // 释放资源、关闭连接
        $result->free();
        $con->close();
        ?>
    </tbody>
</table>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:18:10