所以我想做一个mysql_query --我想知道一个资源是否为空(也就是说,我们不能获取任何值)。如果不存在任何值,查询是否会作为false返回?我读到的文档是正确的吗?
发布于 2012-01-19 21:37:26
您可以使用mysql_num_rows()统计返回的行数,并检查从查询中收到了多少行。
$results = mysql_query("SELECT * FROM...");
if(mysql_num_rows($results) > 0 ) {
// Got some results
} else {
//no rows
}但是请注意,如果查询由于无效的SQL或其他原因而失败,则$results将为false,因此您可以这样做:
if(!$results) {
// Query was invalid
}发布于 2012-01-19 21:38:52
为此,您将使用mysql_num_rows()。
如果mysql_query()返回FALSE,则意味着查询操作存在actaul问题,而不是没有返回任何行。
流程是这样的:
$query = "SELECT * FROM wherever";
if (!$result = mysql_query($query)) {
// mysql_error() gives a human readable string that explains what went wrong
// You should **never** show it in a production environment!
die('MySQL Error: '.mysql_error());
}
if (!mysql_num_rows($result)) {
// There were no results
} else {
// There were some results
}这仅适用于返回数据(SELECT、DESCRIBE等)的查询--如果操作成功,则只执行操作(INSERT、UPDATE、DELETE等)的查询将始终返回TRUE;如果操作失败,则始终返回FALSE。
从manual
表示SELECT、SHOW、DESCRIBE、EXPLAIN和其他返回结果集的语句,mysql_query()在成功时返回资源,在错误时返回FALSE。
对于其他类型的SQL语句,如INSERT、UPDATE、DELETE、DROP等,mysql_query()在成功时返回TRUE,在出错时返回FALSE。
发布于 2012-01-19 21:38:23
如果没有要返回的记录,mysql_num_rows($resultHandle)将返回0(零)
https://stackoverflow.com/questions/8926921
复制相似问题