首页 > 数据库 > mysql教程 > 为什么 `mysqli_num_rows()` 在 PHP 和 MySQL 中返回'boolean给定”错误?

为什么 `mysqli_num_rows()` 在 PHP 和 MySQL 中返回'boolean给定”错误?

Linda Hamilton
发布: 2024-12-09 00:17:11
原创
242 人浏览过

Why Does `mysqli_num_rows()` Return a

PHP 和 MySQL:使用 mysqli_result 解决 mysqli_num_rows() 参数错误

将 HTML Purifier 集成到 PHP 中进行数据验证时,确保这一点至关重要正确的参数传递以避免常见错误,例如“mysqli_num_rows() 期望参数 1 为mysqli_result, boolean给定。”

理解错误

通常,当使用不正确的参数调用 mysqli_num_rows() 函数时,会发生此错误。它需要一个有效的 mysqli_result 对象作为其第一个参数。在给定的代码片段中,第一个参数是 $dbc,它需要是 MySQL 查询的有效结果集。

可能的原因

使用不正确或格式错误的查询可能会导致返回布尔值 (FALSE),而不是 mysqli_result 对象。如果出现以下情况,就会发生这种情况:

  • 查询语法有错误。
  • mysqli_query() 函数未正确执行。
  • 查询返回空结果集.

解决问题

在提供的代码中,问题出在用于从数据库检索数据的 SQL 查询中:

$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");
登录后复制

该错误是由于遗漏了与个人资料与用户和 contact_info 的比较。正确的查询应该是:

$dbc = mysqli_query($mysqli,"SELECT u.*, p.*
                                 FROM users AS u
                                 LEFT JOIN profile AS p ON u.user_id = p.user_id
                                 WHERE u.user_id=3");
登录后复制

通过修复查询,$dbc 变量将返回一个有效的 mysqli_result 对象,使您能够有效地使用 mysqli_num_rows():

if (mysqli_num_rows($dbc) == 0) {
        //...
登录后复制

以上是为什么 `mysqli_num_rows()` 在 PHP 和 MySQL 中返回'boolean给定”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板