PHP 和 MYSQL fatal error : Call to a member function fetch_assoc() on boolean

标签 php mysqli

<分区>

我已经搜索了大约 3 个小时,我看到很多人都有类似的错误,但我还没有找到如何解决这个问题的答案。我看到很多人的回复说“您的查询必须返回 false”,但这无济于事。我现在只使用 mysql 和 php 大约一个星期,所以我非常业余。

我特意将 $count 变量放在那里,看看我的查询是否会返回正确的行数,确实如此,但是 while 循环给了我错误。如果有帮助的话,我的表中目前有 2 行。还有 3 列(id、User1、User2)。

在对如何在数组中存储多行进行了大量谷歌搜索后,所有的回复都说使用 said while 循环,因为 fetch_assoc() 一次只返回 1 行。

谁能告诉我如何修复这段代码,或者我可以使用什么代码将 mysql 搜索的多行加载到数组中?

    $i = 0;
    $stmt1 = $this->conn->prepare("SELECT * FROM friends WHERE User1 = ? OR User2 = ?"); 
    $stmt1->bind_param("ss", $myuid, $myuid);

    if ($stmt1->execute()) {
        $stmt1->store_result();
        $count = $stmt1->num_rows;

        while(($row = $stmt1->get_result()->fetch_assoc()) !== FALSE){
            if ($row['User1'] == $myuid) {
                $friends[$i]= $row['User2'];
                $i++;
            } else if ($row['User2'] == $myuid){
                $friends[$i] = $row['User1'];
                $i++;
                }
        }

        $stmt1->close();

最佳答案

我终于能够让它工作了。 @bio_sprite - 感谢绑定(bind)结果的提示。这是我使用的代码:

    $friends = array(); 
    $i = 0;
    $stmt1 = $this->conn->prepare("SELECT User1, User2 FROM friends WHERE User1 = ? OR User2 = ?"); 
    $stmt1->bind_param("ss", $myuid, $myuid);

    if ($stmt1->execute()) {
        $stmt1->bind_result($User1, $User2);

        while($stmt1->fetch()){

            if ($User1 != $myuid) {
                $friends[$i]= $User1;
                $i++;
            } else if ($User2 != $myuid){
                $friends[$i]= $User2;
                $i++;
                }
        }

        $stmt1->close();

        return $friends;

关于PHP 和 MYSQL fatal error : Call to a member function fetch_assoc() on boolean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41949745/

相关文章:

php - 无法获取要过滤的搜索结果

php - Mysql选择所有相差10分钟的行

php - "s."和 "n"在此 mysql 语句中是什么意思/做什么?

php - 准备好的语句帮助,63/63 参数失败,参数数量不匹配

mySQLi 的 PHP 错误

php - 在php套接字中建立持久连接,以避免太多的apache实例

php - 在一个php中的不同数据库中插入和更新

php - 在for循环中向表中插入数据

php - 表格更新 - 不工作

php - 将 Mysql 函数更改为 Mysqli 会破坏脚本