查询返回为布尔值?

时间:2010-10-29 17:01:29

标签: php mysql

无法弄清楚这是怎么回事。

$replies_sql = "SELECT COUNT(*) AS total
                  FROM forum_posts
                 WHERE forum_posts.thread_id = 1";

我正在尝试计算特定主题中的总回复数。我现在只是在thread_id 1上进行测试。

错误:

  

警告:mysqli_fetch_assoc()期望参数1为mysqli_result,给定布尔值

1 个答案:

答案 0 :(得分:2)

很可能查询因任何原因失败,并返回布尔值FALSE,然后将其传递给fetch_assoc()调用。您应该像这样重构您的代码:

$stmt = mysqli_query($replies_sql);
if ($stmt === FALSE) {
    die("MySQL error: " . mysqli_error($stmt));
}
$res = mysqli_fetch_assoc($stmt);

永远不要假设数据库查询会成功。只有一种方法可以成功,而且失败的方法太多了。