我正在尝试在我的网站上创建评论部分。但是,由于此错误,我的评论未显示
致命错误:未捕获错误:调用成员函数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>";
}
}
?>
如果有人能为我提供一个很棒的答案并提前感谢你。
答案 0 :(得分:1)
查询方法可以返回false
而不是结果集,以防出现错误。这就是为什么你在 fetch_assoc 方法调用上得到错误的原因,当 $ result 是false
时,这显然不存在。
这意味着您的SELECT语句中有错误。要显示该错误,请执行以下操作:
$result = $conn->query($sql) or die($conn->error);
很可能您的表名或列名拼写错误。也许当你搬到主机时,你没有正确创建那个表并在那里犯了拼写错误。
您也可以将其添加到调试中:
echo "total rows: " . $result->num_rows;