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

PHP无法从MySQL表读取显示数据,求助:mysqli_num_rows()参数错误

解决mysqli_num_rows()参数错误的问题

嘿,这个错误我太熟悉了!咱们先搞清楚为啥会出现这个警告:Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given——这说明你传给mysqli_num_rows()的不是有效的查询结果对象,而是一个布尔值false,通常是你的SQL查询执行失败导致的。

下面是具体的排查和解决步骤:

1. 先确认数据库连接是否正常

在执行SQL查询之前,一定要确保你已经成功连接到了数据库。可以在连接代码后加上检查:

$conn = mysqli_connect("localhost", "你的用户名", "你的密码", "你的数据库名");
// 检查连接是否成功
if (!$conn) {
    die("数据库连接失败: " . mysqli_connect_error());
}

2. 找出SQL查询失败的具体原因

当mysqli_query()执行失败时会返回false,这时候我们可以用mysqli_error()获取详细的错误信息,帮你定位问题:

// 你的SQL语句,注意表名、字段名别写错!
$sql = "SELECT * FROM 你的表名";
$result = mysqli_query($conn, $sql);

// 检查查询是否成功
if (!$result) {
    die("SQL查询失败: " . mysqli_error($conn));
}

运行这段代码后,你就能看到具体的错误原因了——比如表名拼写错误、字段名不存在、没有查询权限等等,这些都是常见的坑。

3. 正确处理查询结果并打印数据

确认查询成功后,再调用mysqli_num_rows(),然后循环输出数据:

// 确认有数据后再处理
if (mysqli_num_rows($result) > 0) {
    // 循环读取每一行数据
    while ($row = mysqli_fetch_assoc($result)) {
        // 这里替换成你的字段名,比如id、username等
        echo "ID: " . $row["id"] . ",名称: " . $row["username"] . "<br>";
    }
} else {
    echo "没有找到匹配的数据";
}

// 记得关闭连接
mysqli_close($conn);

常见的坑点提醒

  • 表名和字段名要区分大小写吗?这取决于你的数据库配置(比如MySQL在Linux下默认区分,Windows下不区分),最好和数据库里的实际名称完全一致。
  • 如果涉及用户输入,不要直接把输入拼进SQL语句里,这会导致SQL注入风险,建议使用预处理语句。

内容的提问来源于stack exchange,提问作者Билолбек Атабеков

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:14:41