2017-04-24 27 views
-3

我试着从登录后的页面上显示数据库中的用户,但我不断收到一条错误消息:致命错误:调用未定义的函数fetch_assoc()提供什么?

致命错误:调用未定义功能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> 
+4

fetch_assoc()不是一个函数,以便错误消息是正确的。这是mysqli结果对象的一种方法。你错过了OOP的对象部分。 –

+0

为什么用'$ result-> fetch_assoc()'注释行?你最初得到什么错误? –

回答

0

这是怎么了你这样做,你混合面向对象和程序:

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>"; 
     } 
+0

我没有在我的服务器上安装mysqlnd,所以代码,这是我的原始代码,也给我一个错误。有另一种方法吗? – WillingLearner

+0

切换其他的东西上面的程序,然后而不是混合它 – clearshot66

+0

请提供例如 – WillingLearner

0

这里是p正确脚本rocedural连接数据库:

<?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); 
?> 
+0

我得到这个错误尝试的代码的: 警告: mysqli_fetch_assoc()期望参数1是mysqli_result,在 – WillingLearner

+0

中给出的布尔值你是否复制我的代码,beacouse在我的phpMyAdmin上没有错误地工作。我试图找出为什么你有这个错误。 – b2ok

+0

我找到了!您没有连接到数据库。看看你的第一行:$ con = mysqli_connect(“localhost”,“root”,“”,“db1”); – b2ok

相关问题