检查MySQL结果是否在PHP中返回的最佳方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我正在寻找检查查询是否返回任何结果的最佳方法。我觉得我很多时候写这部分代码,有时候我会犯错误,有时候我不会。

例如,我运行此查询来检查用户名是否存在,然后再将新用户插入数据库。

$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 }

做这个的最好方式是什么?

提问于
用户回答回答于
if (mysql_num_rows($result)==0) { PERFORM ACTION }

=

用户回答回答于

一种方法是检查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并在某处记录错误。

扫码关注云+社区