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

PHP远程连接数据库并展示数据失败:页面空白求助

排查步骤及修复建议

1. 先开启PHP错误显示,定位根本问题

空白页多数是因为PHP报错但被系统屏蔽了,在代码最顶部加上这两行,强制显示所有错误:

error_reporting(E_ALL);
ini_set('display_errors', 1);

刷新页面后就能看到具体错误信息,比如连接失败、SQL语法错误等。

2. 检查数据库远程连接权限

你用的是远程IP(192.168.56.1)连接,需要确认两个关键点:

  • 目标MySQL服务器的配置文件(my.cnf/my.ini)里,bind-address是否设为0.0.0.0(允许所有IP访问),而不是默认的127.0.0.1(仅本地访问),修改后要重启MySQL服务。
  • 数据库用户root是否拥有远程访问权限,默认root只能本地登录,需要在数据库服务器上执行授权命令:
GRANT ALL PRIVILEGES ON grh.* TO 'root'@'%' IDENTIFIED BY '';
FLUSH PRIVILEGES;

(注:%代表允许所有IP,若只想限制特定IP,把%换成你的客户端IP即可)

3. 增加SQL查询的错误判断

当前代码如果SQL查询失败(比如表名拼写错误),$result会返回false,调用$result->num_rows会直接报错导致页面空白,要先判断查询是否成功:

$sql = "SELECT * FROM ip_patient_logs";
$result = $conn->query($sql);
// 新增查询失败判断
if (!$result) {
    die("SQL查询失败: " . $conn->error);
}
$rows = array();

4. 改成HTML格式展示数据(匹配你的需求)

你原本想在HTML里展示数据,但当前代码输出的是JSON格式,直接访问可能显示纯字符串或因解析问题看起来空白。可以改成生成HTML表格:

if ($result->num_rows > 0) {
    echo "<table border='1'>";
    // 输出表头
    $firstRow = mysqli_fetch_assoc($result);
    echo "<tr>";
    foreach ($firstRow as $key => $value) {
        echo "<th>$key</th>";
    }
    echo "</tr>";
    // 输出第一行数据
    echo "<tr>";
    foreach ($firstRow as $value) {
        echo "<td>$value</td>";
    }
    echo "</tr>";
    // 输出剩余行数据
    while($r = mysqli_fetch_assoc($result)) {
        echo "<tr>";
        foreach ($r as $value) {
            echo "<td>$value</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
} else {
  echo "0 results";
}

最后补充检查

  • 确认远程服务器的3306端口是否开放(防火墙/安全组要允许该端口的入站请求)
  • 确认数据库密码是否正确(你当前密码为空字符串,要和服务器上的root密码完全一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:45:42