2011-08-24 157 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); 
}