我想检查我的查询是否为空(没有行)。什么是最好的方法呢?
我在下面的“$ result”和“$ row”中得到了什么(这就是我的目标 - if($result)
或者使用if($row)
意味着它不是空的任何更好的建议?
感谢。
$result = mysql_query("SELECT * FROM table1 WHERE column1= '$var1'
AND column2 IN ('no','nein','nope')
AND timestamp BETWEEN '$date' AND NOW()");
$row = mysql_fetch_assoc($result);
答案 0 :(得分:2)
您可以使用mysql_num_rows($result)
获取行数,或者您可以查看是否$row === false
;
$row
将是记录集OR false
的第一行。
如果查询成功$result
,则false
将成为记录集资源。
如果您是项目的早期和/或只是学习,请考虑切换到新的数据库界面PDO
。至少使用Mysqli
...你现在使用的mysql扩展有点过时了。它有效,有时甚至在遗留应用程序/网站中也是必需的,但如果可能的话应该避免使用它。
答案 1 :(得分:2)
测试一下。
$result = mysql_query("SELECT * FROM table1 WHERE column1= '$var1'
AND column2 IN ('no','nein','nope')
AND timestamp BETWEEN '$date' AND NOW()");
$row = mysql_fetch_array($result);
if (mysql_num_rows($result) > 0) {
echo $row['column name'];
}
答案 2 :(得分:1)
使用mysql_num_rows
获取行数。
$ result将始终为Resource类型。