尝试回显评论时显示错误

时间:2018-06-12 05:20:14

标签: php html sql

我正在尝试在我的网站上创建评论部分。但是,由于此错误,我的评论未显示

  

致命错误:未捕获错误:调用成员函数fetch_assoc()   在C:\ xampp \ htdocs \ tutorials \ comments.inc.php中的布尔值:24堆栈   trace:#0 C:\ xampp \ htdocs \ tutorials \ homepage.php(23):   getComments(Object(mysqli))#1 {main}引入   第24行的C:\ xampp \ htdocs \ tutorials \ comments.inc.php

以下是comments.inc.php的代码

<?php
include 'dbh.inc.php';

function setComments($conn) {
    if(isset($_POST['commentSubmit'])){
        $uid = $_POST['uid'];
        $date = $_POST['date'];
        $message = $_POST['message'];

        $sql = "INSERT INTO comments (uid, date, message) VALUES ('$uid', 
'$date', 
'$message')";
        $result = $conn->query($sql);

   }


}

function getComments($conn) {

    $sql = "SELECT * FROM comments";
    $result = $conn->query($sql);
    while($row = $result->fetch_assoc()){
    echo "<div class='comment-box'><p>";
        echo $row['uid']."<br>";
        echo $row['date']."<br>";
        echo $row['message'];
     echo "</p></div>";

    }
}
?>

如果有人能为我提供一个很棒的答案并提前感谢你。

1 个答案:

答案 0 :(得分:1)

查询方法可以返回false而不是结果集,以防出现错误。这就是为什么你在 fetch_assoc 方法调用上得到错误的原因,当 $ result false时,这显然不存在。

这意味着您的SELECT语句中有错误。要显示该错误,请执行以下操作:

 $result = $conn->query($sql) or die($conn->error);

很可能您的表名或列名拼写错误。也许当你搬到主机时,你没有正确创建那个表并在那里犯了拼写错误。

您也可以将其添加到调试中:

echo "total rows: " . $result->num_rows;