PHP mysql_query没有返回false

2 php mysql

刚刚学习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语句.