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 对象。如果出现以下情况,就会发生这种情况:
解决问题
在提供的代码中,问题出在用于从数据库检索数据的 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中文网其他相关文章!