8

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?

4

3 回答 3

18

根据手册

失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,mysqli_query() 将返回一个 mysqli_result 对象。对于其他成功的查询,mysqli_query() 将返回 TRUE。

运行但未返回结果的查询仍被视为“成功查询”,因为该查询确实在数据库中运行并且空结果集是合法响应。这意味着查询仍将返回一个mysqli_result对象,如果您检查其行数(通过$result->num_rows面向对象样式或mysqli_num_rows($result)过程样式),它将返回 0。

于 2013-01-19T22:38:19.147 回答
4

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
}
于 2013-01-19T22:33:15.083 回答
1
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。

于 2013-01-19T22:35:09.730 回答