我知道以前曾有人问过这个问题,但我花了时间查看回复,但找不到任何能指引我正确方向的内容。
我有以下代码:
<?php
$connSel = OpenCon();
$sqlSel = 'SELECT * FROM sitecomments';
$stmtSel = $connSel -> prepare($sqlSel);
$q_resultSel = $stmtSel -> execute();
if(sizeof($q_resultSel)>0){
while($row = $q_resultSel->fetch_assoc()){
echo $row['username']."<br><br>".$row['comment'];
}
}
else{
echo '<i>No comments yet</i>';
}
?>
我已经检查了数据库中的查询,它返回一切正常。但是,它在这里不起作用。我收到错误消息“调用 bool 值的成员函数 fetch_assoc()”。
我试图追踪错误,似乎是该行
while($row = $q_resultSel->fetch_assoc())
返回 false,因为它在查询失败时返回 false,因此迭代它不起作用。我试图查找 $q_resultSel 中的行数,但收到消息“尝试获取非对象的属性”,因此我不确定我是否理解我在之前的帖子中找到的特定错误检查方法。
任何想法将不胜感激。
最佳答案
将 sizeof()
更改为 $stmtSel->num_rows
$connSel = OpenCon();
$sqlSel = 'SELECT * FROM sitecomments';
if($stmtSel = $connSel -> prepare($sqlSel)){
$q_resultSel = $stmtSel -> execute();
$stmtSel ->store_result();
if($stmtSel->num_rows>0){
$result = $q_resultSel->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)){
echo $row['username']."<br><br>".$row['comment'];
}
}
}
else{
echo '<i>No comments yet</i>';
}
关于PHP/MYSQL Select 语句抛出错误,尽管语句在数据库中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54962009/