【发布时间】:2011-05-16 06:06:36
【问题描述】:
我正在寻找检查查询中是否返回任何结果的最佳方法。我感觉这部分代码我写了很多,有时会出错,有时不会。
例如,我在将新用户名插入数据库之前运行此查询以检查用户名是否存在。
$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 }
最好的方法是什么?
【问题讨论】:
-
对于这个例子,我们假设查询没有产生错误。
-
如果查询没有错误,那么第一次测试是没有意义的。如果它是“SELECT *”,则第二种方法是最好的方法,最后一种方法仅在您有 SELECT COUNT(*) 或其他聚合函数时才有用。但是为了理智,请使用 PDO :-)