Php 致命错误:调用未定义的函数fetch_assoc(),给出了什么?

Php 致命错误:调用未定义的函数fetch_assoc(),给出了什么?,php,mysqli,Php,Mysqli,我试图在登录后在页面上显示数据库中的用户,但我一直收到一条错误消息: 致命错误:调用未定义的函数fetch_assoc() 代码如下: <?php session_start(); ?> <link rel="stylesheet" href="form.css"> <div class="body content"> <div class="welcome"> <div class="alert aler

我试图在登录后在页面上显示数据库中的用户,但我一直收到一条错误消息:

致命错误:调用未定义的函数fetch_assoc()

代码如下:

    <?php
session_start(); ?>

<link rel="stylesheet" href="form.css">
<div class="body content">

    <div class="welcome">
        <div class="alert alert-success"><?= $_SESSION['message'] ?></div>
        <img src="<?= $_SESSION['avatar'] ?>"><br />
        Welcome <span class="user"><?= $_SESSION['username'] ?></span>

        <?php
        $mysqli = new mysqli("localhost","user","password","database");
        //Select queries return a resultset
        $sql = "SELECT username, avatar FROM users";
        $result = $mysqli->query($sql); //$result = mysqli_result object
        //var_dump($result);
        ?>

        <div id='registered'>
        <span>All registered users:</span>

        <?php
        //while($row = $result->fetch_assoc()){ //returns associative array of fetched row
         while($row = fetch_assoc($result)){ //returns associative array of fetched row
            //echo '<pre>';
            //print_r($row);
            //echo '</pre>';
            echo "<div class='userlist'><span>$row[username]</span>";
            echo "<img src='$row[avatar]'></div>";
        }
        ?>  
        </div>
    </div>
</div>

“>
欢迎 所有注册用户:
这就是你如何做到这一点,你混合了面向对象和过程:

<?php    
    $con = mysqli_connect("localhost","root","","db1");
    $sql = "SELECT username, avatar FROM users";
    $result = mysqli_query($con,$sql);
    $row = mysqli_fetch_assoc($result);
    echo $row["username"] . " " . $row["avatar"] . "<br>";
    mysqli_close($con);
?>
while($row=$result->fetch_assoc()){//返回已提取行的关联数组
//回声';
while($row = $result->fetch_assoc()){ //returns associative array of fetched row
            //echo '<pre>';
            //print_r($row);
            //echo '</pre>';
            echo "<div class='userlist'><span>$row[username]</span>";
            echo "<img src='$row[avatar]'></div>";
        }
//打印(行); //回声';
while($row = $result->fetch_assoc()){ //returns associative array of fetched row
            //echo '<pre>';
            //print_r($row);
            //echo '</pre>';
            echo "<div class='userlist'><span>$row[username]</span>";
            echo "<img src='$row[avatar]'></div>";
        }
回显“$row[用户名]”; 回声“; }
以下是与数据库进行过程连接的正确脚本:



fetch\u assoc()不是一个函数,因此错误消息是正确的。它是mysqli result对象的一个方法。您缺少OOP的对象部分。为什么要用
$result->fetch\u assoc()注释该行
?您最初遇到了什么错误?我的服务器上没有安装mysqlnd,因此该代码(我的原始代码)也给了我一个错误。还有其他方法吗?将上面的其他内容切换到过程中,而不是混合使用。请提供示例我尝试该代码时遇到此错误:警告:mysqli\u fetch\u assoc()预期参数1为mysqli_result,在您复制我的代码时使用布尔值,因为在我的phpMyAdmin上工作时没有错误。我正在尝试查找出现此错误的原因。我发现了!您没有连接到数据库。请查看第一行:$con=mysqli_connect(“localhost”,“root”,“”“,”db1”);这是您的代码错误:$sql=“SELECT username,当我写username1这样的用户名时,我和你一样犯了严重的错误。我创建了这个名为db1的示例数据库,名为users的表,名为id、username、avatar的字段。你可以检查你的数据库名称。