PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP和MYSQL致命错误:在布尔值上调用成员函数fetch_assoc()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

我故意将$count变量放在其中,以查看查询是否返回正确的行数,并且确实如此,但是while循环给了我错误.我的表中目前有2行,如果有帮助的话.总共有3列(id,User1,User2).

在进行了一系列关于如何在数组中存储多行的google搜索之后,所有响应都说要使用所述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-感谢您绑定结果的提示.这是我使用的代码

    $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致命错误:在布尔值上调用成员函数fetch_assoc()全部内容,希望文章能够帮你解决PHP和MYSQL致命错误:在布尔值上调用成员函数fetch_assoc()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: