检查mysql_query是否返回任何结果的最佳方法?

2022-08-30 08:32:48

我正在寻找检查并查看查询中是否返回任何结果的最佳方法。我觉得我经常写这部分代码,有时我会遇到错误,有时我不会。

例如,在将新用户名插入数据库之前,我运行此查询以检查用户名是否存在。

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

最好的方法是什么?


答案 1
if (mysql_num_rows($result)==0) { PERFORM ACTION }

对于 PHP 5 和 7 及更高版本,请使用 mysqli:

if (mysqli_num_rows($result)==0) { PERFORM ACTION }

答案 2

一种方法是检查mysql_num_rows返回的内容。一个最小的完整示例如下:

if ($result = mysql_query($sql) && mysql_num_rows($result) > 0) {
    // there are results in $result
} else {
    // no results
}

但建议您检查mysql_query的返回值,并在出现的情况下正确处理它(这将是由错误引起的);可能还通过调用mysql_error并在某个地方记录错误。false


推荐