I am using the PHP function mysqli_query
to run a SELECT
query.
What does mysqli_query
return if the query runs successfully, but the query finds no matches?
根据手册:
失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,mysqli_query() 将返回一个 mysqli_result 对象。对于其他成功的查询,mysqli_query() 将返回 TRUE。
运行但未返回结果的查询仍被视为“成功查询”,因为该查询确实在数据库中运行并且空结果集是合法响应。这意味着查询仍将返回一个mysqli_result
对象,如果您检查其行数(通过$result->num_rows
面向对象样式或mysqli_num_rows($result)
过程样式),它将返回 0。
A Mysqli_query
object, than you can use mysqli_num_rows to count the number of rows returned. So:
if(mysqli_num_rows($query) > 0 ){
// Do something
}
if ($result = $mysqli->query("SELECT * FROM data"))
{
$count = $result->num_rows;
printf("Result set has %d rows.\n", $count);
$result->close();
}
从参考:
失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,mysqli_query() 将返回一个 mysqli_result 对象。对于其他成功的查询,mysqli_query() 将返回 TRUE。