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

SQL正常运行的查询代码在PHP网站运行报mysqli_num_rows参数错误

问题排查与解决方案

错误原因

  • 核心问题:SQL语句中带空格的字段名错误使用单引号包裹。SQL语法中单引号用于定义字符串常量,你写的'Social Media Opinion'会被识别为普通字符串而非表svar2的字段,导致SQL执行失败返回false,将布尔值传入mysqli_num_rows就触发了类型错误。phpMyAdmin能正常运行是因为其内置了更高的语法容错配置,会自动修正这类标识符引用错误。
  • 次要问题:代码缺少SQL执行结果校验,没有判断mysqli_query的返回值是否合法就直接调用后续方法;同时<thead>标签没有正确闭合,输出的HTML结构存在语法问题。
  • 优化提示:使用sum()聚合函数的查询永远只会返回1行结果,不需要用mysqli_num_rows判断行数再遍历,可直接读取返回结果。

修复后的完整代码

// 字段名用反引号包裹,不是单引号
$sql = "select sum(case when `Social Media Opinion`='I like social media.' and `Social Media Usage`='Every day' then 1 else 0 end) as ye from svar2;";

$result = mysqli_query($conn, $sql);
// 先判断SQL执行是否成功
if (!$result) {
    // 开发环境可输出错误排查问题,生产环境替换为友好提示
    die("SQL执行错误:" . mysqli_error($conn));
}
$row = mysqli_fetch_assoc($result);
?>
<thead>
    <tr>
        <td>Internet Fatigue out of 10</td>
    </tr>
</thead>
<tbody>
    <tr>
        <td><?php echo $row['ye']; ?></td>
    </tr>
</tbody>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:45:05