我使用PHP函数mysqli_query
来运行SELECT
查询。
如果查询成功运行,mysqli_query
会返回什么,但查询找不到匹配项?
答案 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。