我正在寻找检查查看是否在查询中返回任何结果的最佳方法.我觉得我经常写这部分代码,有时候会出错,有时我也不会.
例如,我运行此查询以检查在将新的用户名插入数据库之前是否存在用户名.
$result = mysql_query("SELECT * FROM ...");
然后我想检查并查看是否返回了任何结果.这是我做的一种方式:
if (!$result) { PERFORM ACTION }
如果第一种方法不起作用,那么有时会这样:
if (mysql_num_rows($result)==0) { PERFORM ACTION }
然后我甚至看到我可以在前几天这样做:
list($total) = mysql_fetch_row($result);
if ($total==0) { PERFORM ACTION }
做这个的最好方式是什么?
ben*_*e89 132
if (mysql_num_rows($result)==0) { PERFORM ACTION }
这得到了我的投票.
OP假设查询没有返回任何错误,所以这应该是其中一种方式
Sho*_*hoe 12
一种方法是检查mysql_num_rows返回的内容.一个最小的完整示例如下:
if ($result = mysql_query($sql) && mysql_num_rows($result) > 0) {
    // there are results in $result
} else {
    // no results
}
但是建议你检查它的返回值mysql_query并在它的情况下正确处理它false(这可能是由错误引起的); 可能还会mysql_error在某处调用并记录错误.
每当我们执行查询以获取一些数据时,它都会作为对象返回。然后,我们大多数人将其转换为数组,以便轻松地遍历各行。在PHP中,“ empty()”函数用于检查数组是否为空,即数组中是否没有数据。这样我们就可以检查返回的查询数组表示形式是否为空
if(!empty($result)){
           //DO STUFF
}
| 归档时间: | 
 | 
| 查看次数: | 216075 次 | 
| 最近记录: |