试图获取非对象的属性“ num_rows”

时间:2019-07-08 08:12:42

标签: php

我正在使用教程设置用户配置文件系统,但遇到了这个PHP错误。

//第一行是给出错误的那一行

    $sql = "SELECT * FROM users"; 
    $result = $conn->query($sql); 
    if ($result->num_rows > 0) {

        while($row = $result->fetch_assoc()) {

            echo '<hr />';
            echo '<table>';
            echo '<tr><td>ID:</td><td>'.$row["id"].'</td></tr>';
            echo '<tr><td>Avatar:</td><td><img src="'.$row["avatar"].'" width="100px" /></td></tr>';
            echo '<tr><td>Firstname:</td><td>'.$row["firstname"].'</td></tr>';
            echo '<tr><td>Lastname:</td><td>'.$row["lastname"].'</td></tr>';
            echo '<tr><td>Country:</td><td>'.$row["country"].'</td></tr>';
            echo '</table>';

        }
    }
    else {
       echo "0 results";
    }
}

4 个答案:

答案 0 :(得分:1)

使用$ result-> num_rows()替换$ result-> num_rows。因为它是一个功能。我希望这对您有用。

$result->num_rows()

答案 1 :(得分:1)

尝试一下

if ($result && ($result->num_rows() > 0)) 
{ 

    while($row = $result->fetch_assoc()) 
    {

        echo '<hr />';
        echo '<table>';
        echo '<tr><td>ID:</td><td>'.$row["id"].'</td></tr>';
        echo '<tr><td>Avatar:</td><td><img src="'.$row["avatar"].'" width="100px" /></td></tr>';
        echo '<tr><td>Firstname:</td><td>'.$row["firstname"].'</td></tr>';
        echo '<tr><td>Lastname:</td><td>'.$row["lastname"].'</td></tr>';
        echo '<tr><td>Country:</td><td>'.$row["country"].'</td></tr>';
        echo '</table>';

    }
}
else {
       echo "0 results";
     }

答案 2 :(得分:0)

当您没有任何结果时,可能会发生此错误,因此,您尝试获取空对象的属性。如上所述,首先,您应确保$ results不为空。代替:

if ($result->num_rows > 0) {

尝试:

if ($result && ($result->num_rows > 0)) { 

答案 3 :(得分:0)

      $lclQuery = "SELECT * FROM users";

      $result =  $con->query($lclQuery);

      if($result->rowCount() > 0) {

      while($row = $result->fetch_assoc()) {

        echo '<hr />';
        echo '<table>';
        echo '<tr><td>ID:</td><td>'.$row["id"].'</td></tr>';
        echo '<tr><td>Avatar:</td><td><img src="'.$row["avatar"].'" width="100px" /></td></tr>';
        echo '<tr><td>Firstname:</td><td>'.$row["firstname"].'</td></tr>';
        echo '<tr><td>Lastname:</td><td>'.$row["lastname"].'</td></tr>';
        echo '<tr><td>Country:</td><td>'.$row["country"].'</td></tr>';
        echo '</table>';

    }
}
else {
   echo "0 results";
}

使用如上。上面的代码肯定有效。