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

如何检测mysqli_query查询结果是否为空?附代码示例

检测mysqli_query查询结果是否为空的方法

没问题,我来帮你搞定这个需求~其实很简单,我们可以分两步处理:先确保查询执行成功,再判断结果集中有没有数据。

核心思路

  1. 先检查mysqli_query的返回值是否为false——如果是,说明查询语句出错了,得先处理错误;
  2. 如果查询成功,用mysqli_num_rows()函数获取结果集的行数,行数为0就代表没有匹配的数据。

修改后的完整代码示例

结合你的现有代码,调整后应该是这样:

$result = mysqli_query($con, "SELECT ......");

// 第一步:检查查询是否执行成功
if (!$result) {
    // 这里可以根据需求调整错误提示方式,比如输出友好信息或者记录日志
    die("查询出错啦: " . mysqli_error($con));
}

// 第二步:判断结果是否为空
if (mysqli_num_rows($result) == 0) {
    echo "<p>没有找到符合条件的数据哦</p>";
} else {
    // 输出表格及数据行
    ?>
    <table class="table table-striped" width="100%">
        <thead>
            <th>Jahr</th>
            <!-- 这里可以添加其他表头字段 -->
        </thead>
        <tbody>
            <?php
            while($ausgabe = mysqli_fetch_object($result)){
            ?>
            <tr>
                <td><?php echo $ausgabe->jahr; ?></td>
                <!-- 其他表格列内容 -->
            </tr>
            <?php
            }
            ?>
        </tbody>
    </table>
    <?php
}

额外小提示

  • 别忽略查询失败的情况(也就是$result为false的场景),不然如果SQL语句写错或者数据库连接出问题,你可能找不到问题根源;
  • 如果你不想用mysqli_num_rows(),也可以先尝试用mysqli_fetch_object()取一次数据:如果返回null,说明结果为空,不过记得用mysqli_data_seek($result, 0)把指针重置回开头,再执行循环——不过这种方法不如mysqli_num_rows()直观,更适合一些特殊场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:47:57