mysqli_query - 返回值

时间:2013-01-19 22:31:29

标签: php mysql

我使用PHP函数mysqli_query来运行SELECT查询。

如果查询成功运行,mysqli_query会返回什么,但查询找不到匹配项?

3 个答案:

答案 0 :(得分:12)

根据manual

  

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

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

答案 1 :(得分:4)

Mysqli_query对象,而不是使用mysqli_num_rows来计算返回的行数。所以:

if(mysqli_num_rows($query) > 0 ){
    // Do something
}

答案 2 :(得分:0)

if ($result = $mysqli->query("SELECT * FROM data"))
{
    $count = $result->num_rows; 
    printf("Result set has %d rows.\n", $count);
    $result->close();
}

来自reference

  

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