2013-01-24 102 views
1

在我確定的其他許多問題中,$ 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> 

回答

2

那麼,你實際上並不是執行查詢,只是設置一個字符串到你想要的SQL。像這樣的東西會更好。

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

if ($result = $db->query($sql)) { 
0

你實際上並沒有用你設置的連接對你的數據庫運行查詢。你的例子中的$result你只是一個HEREDOC字符串。

你需要做的是這樣的:

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

然後,你可以調用$結果對象的fetch_assoc()方法。