PHP/MYSQL Select 语句抛出错误,尽管语句在数据库中工作

标签 php mysql mysqli

我知道以前曾有人问过这个问题,但我花了时间查看回复,但找不到任何能指引我正确方向的内容。

我有以下代码:

<?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/

相关文章:

html - 为了制作出像样的应用程序,我接下来应该阅读什么? (了解 C、HTML 和 MySQL)

php - mySQL查询昨天的最大时间戳

php - 查询结果不会被回显

javascript - PHP 日历周期(每周)

php - MVC 模型,它们有什么用?

php - 如何将动态构造的 ext/mysql 查询转换为 PDO 准备语句?

php - 如何解决 PHP 中不能使用字符串偏移量作为数组错误?

php - 为什么 'Cannot break/continue 1 level' 出现在 PHP 中?

php - 帮助MYSQL查询使用PHP搭建博客存档导航菜单

sql - InnoDB 存储引擎已从 Oracle MySQL 经典版中删除?