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中文网其他相关文章!