首页 >数据库 >mysql教程 >为什么'mysqli_num_rows()”返回布尔值而不是结果集?

为什么'mysqli_num_rows()”返回布尔值而不是结果集?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-07 19:49:14688浏览

Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?

PHP 和 MySQL:解决“mysqli_num_rows() 期望参数 1 为 mysqli_result,给定布尔值”错误

错误“mysqli_num_rows()期望参数 1 为 mysqli_result,给定布尔值”表示提供给 mysqli_num_rows() 函数的输入不是有效的结果集。当输入参数不是成功执行查询的结果时,经常会遇到此错误。

在这种特定情况下,错误发生在以下 PHP 代码行中:

if (mysqli_num_rows($dbc) == 0) {

这里,变量 $dbc 用作 mysqli_num_rows() 的输入,但它返回 false,因为在 $dbc 上执行的查询包含错误:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

查询中的错误是用户和个人资料表之间缺少 JOIN 关键字:

SELECT users.*, profile.* --You do not join with profile anywhere.
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

要解决此问题,您应该按如下方式修改查询:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN profile 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

通过更正查询,mysqli_num_rows() 函数现在将收到有效的结果集并能够确定结果中的行数是否为零。

以上是为什么'mysqli_num_rows()”返回布尔值而不是结果集?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn