如何检测mysqli_query查询结果是否为空?附代码示例
检测mysqli_query查询结果是否为空的方法
没问题,我来帮你搞定这个需求~其实很简单,我们可以分两步处理:先确保查询执行成功,再判断结果集中有没有数据。
核心思路
- 先检查
mysqli_query的返回值是否为false——如果是,说明查询语句出错了,得先处理错误; - 如果查询成功,用
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
相关产品推荐
相关产品推荐

