刚刚学习PHP,我在理解mysql_query时遇到了一些麻烦.我的理解是,如果找不到记录,mysql_query应该返回FALSE.然而,似乎它总是返回true,因为"FOUND!" 永远是结果:
$q = "SELECT * FROM users WHERE username = 'doesnotexist'";
$r = mysql_query($q);
if (!$q) {
echo "<p>NOT FOUND!</p>";
} else {
echo "<p>FOUND!</p>";
}
mysql_close();
Run Code Online (Sandbox Code Playgroud)
提前感谢您可以放下任何光线.
art*_*ung 13
如果有错误,mysql_query返回false,如果没有找到结果,则返回false.从文档:
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,
mysql_query()在成功时返回资源,在出错时返回FALSE.对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等
mysql_query()在成功时返回TRUE,在出错时返回FALSE.
mysql_query()如果用户没有访问查询引用的表的权限,它也将失败并返回FALSE.
如果要检查查询是否返回结果,请使用mysql_num_rows().查看文档:
使用
mysql_num_rows()找出多少行返回一个SELECT语句或mysql_affected_rows()找出多少行受到影响由DELETE,INSERT,REPLACE或UPDATE语句.