0

在我确信还有很多其他问题中,$result 变量没有被识别

得到一个

致命错误:在非对象上调用成员函数 fetch_assoc()

我不知道为什么。任何帮助,将不胜感激。这是代码:

<html>
    <body>

        <?PHP

$db = new mysqli('localhost', 'root', '', 'edumacation');

if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}

$result = <<<SQL
    SELECT *
    FROM `student`
    WHERE `id` = 1
SQL;


while($row = 
        $result->fetch_assoc()){
    echo "<table border='1'><tr><th>Name</th><th>Grade</th><th>Favorite Teacher</th><th>Date Enrolled</th></tr>";
    echo "<tr><td>" . $row['first_name'] . "</td><td>" . $row['grade'] . "</td><td>" . $row['fav_teacher'] . "</td></tr>" . $row['enrolled'] . "<br />";
    echo "</table>";
}

?>
   </body> 
</html>
4

2 回答 2

2

好吧,您实际上并没有执行查询,只是将字符串设置为您想要的 SQL。这样的事情会更好;

$sql = <<<SQL
  SELECT *
  FROM `student`
  WHERE `id` = 1
SQL;

if ($result = $db->query($sql)) {
于 2013-01-24T21:15:05.167 回答
0

您实际上并没有使用您设置的连接对您的数据库运行查询。 $result在您的示例中,您只是一个 HEREDOC 字符串。

您需要执行以下操作:

$result = $db->query("SELECT * FROM `student` WHERE `id` = 1; ");

然后你可以调用fetch_assoc()$result 对象的方法。

于 2013-01-24T21:14:33.640 回答