在许多脚本中,程序员在运行相应的while循环之前检查SELECT
查询是否返回了任何记录
$result=mysql_query("SELECT * From table WHERE column='XX'");
if(mysql_num_rows($result)>0) {
while($row=mysql_fetch_array($result)){
...
}
}
这项检查是否必要或有用?因为当没有返回任何记录时,while循环不会循环。检查返回的行数是否可以提高性能?
答案 0 :(得分:5)
通常在没有返回行的情况下执行此操作,并且您只想为用户打印出一条好消息。如果你只有一个while循环,你需要保留一个计数器,这可能会变得丑陋。
因此它主要用于
else {
echo "No results found!";
}
)
答案 1 :(得分:1)
对于程序员来说,如果没有返回任何行,很明显不会执行WHILE
循环中的代码。这是一个常见的结构,因此无需进一步说明。因此,除非有分支,否则不需要IF
。
因此,有两个理由不把冗余代码放进去,我想不出任何理由把它放在那里。
不可强>
$result=mysql_query("SELECT * From table WHERE column='XX'");
if(mysql_num_rows($result)>0) {
while($row=mysql_fetch_array($result)){
...
}
} else {
// Do something
}
不可强>
$result=mysql_query("SELECT * From table WHERE column='XX'");
while($row=mysql_fetch_array($result)){
...
}
<强> BAD:强>
$result=mysql_query("SELECT * From table WHERE column='XX'");
if(mysql_num_rows($result)>0) {
while($row=mysql_fetch_array($result)){
...
}
}