2011-08-24 156 views
0

我當前的代碼問題:從數據庫中提取數據

<?php 
       if(require("connect.php")) 
       { 
       $result = $mysqli->query('SELECT title, description, portfolio FROM Portfolio;'); 
       while($o = $result->fetch_object()) 
       { 
       $title=htmlspecialchars($o->title); 
       $description=htmlspecialchars($o->description); 
       $portfolio=htmlspecialchars($o->portfolio); 

       echo <<<ARTBOX 
       <div class="artbox"> 
       <div class="photocontainer"> 
        <img src="$portfolio" alt="$title" /> 
       </div> 
       <div class="artboxtitle"> 
        $title 
       </div> 
       <div class="artboxdescription"> 
        $description 
       </div> 
       <div class="artboxenquiry"> 
        <img src="images/enquiry.png" alt="Make an Enquiry" href="#" /> 
       </div> 
      </div> 
ARTBOX; 
} 
       } 
       else 
       { 
        echo "An error occurred, please try again."; 
       } 
?> 

返回錯誤:「致命錯誤:調用一個成員函數fetch_object()非物體上......」

有人能告訴我我要去哪裏嗎?

+3

您的查詢可能失敗,從而導致'mysqli_query'返回'FALSE'。因此你的'$ result'是'false',你不能在'false'上調用'fetch_object()'。 – NullUserException

+0

檢查你的查詢,如果你有任何名稱的拼寫錯誤 – Ibu

+0

在調用成員函數之前檢查'if($ result)'。 –

回答

1

看看mysqli::query()的返回值。如果發生錯誤,它可以返回FALSE。所以$result將是FALSEFALSE->fetch_object()沒有任何意義 - 它確實在非對象上調用成員函數。

要進行調試,可以輸出錯誤信息:

$result = $mysqli->query('SELECT title, description, portfolio FROM Portfolio;'); 
if (!$result) { 
    die($mysqli->error); 
}