2017-02-07 42 views
-2
$db = new PDO('mysql:host=localhost;dbname=mydb', 'myusername', 'mypassword'); 
$query = $db->query('SELECT a.title, a.descrption, a.icon, b.title, b.descrption, b.images 
FROM explorefeatures AS a, blog AS b WHERE a.id = b.id'); 
while ($row = $query->fetchAll(PDO::FETCH_ASSOC)) 
{ 
    //echo "<pre>"; 
    //print_r($row); 
    echo $row->title; 
    echo $row->icon; 
    echo $row->images; 
    echo $row->descrption; 
} 

試圖讓非對象的財產......PDO錯誤而獲取記錄

我得到這個錯誤。任何人都可以告訴我代碼有什麼問題嗎?

+1

'FETCH_ASSOC'返回一個*關聯數組*,而不是對象... –

+0

的可能的複製(http://stackoverflow.com [PHP PDO抓取不工作?]/questions-31402802/php-pdo-fetch-not-working) –

+0

嘗試以數組的形式訪問結果而不是對象 –

回答

0

FETCH_ASSOC意思是: 「哎,PDO,我一個陣列」。
關聯數組是而不是的一個對象。你必須訪問它像一個數組:

while ($row = $query->fetchAll(PDO::FETCH_ASSOC)) 
{ 
    echo $row['title']; 
    echo $row['icon']; 
    echo $row['images']; 
    echo $row['description']; 
} 

或者,也可以作爲對象。你只需告訴PDO這樣做。

while ($row = $query->fetchAll(PDO::FETCH_OBJ)) 
{ 
    echo $row->title; 
    echo $row->icon; 
    echo $row->images; 
    echo $row->description; 
} 

還看到:PDOStatement::fetch()

+0

感謝它的工作原理我只是爲了某些測試目的而將PDO :: FETCH_OBJ更改爲FETCH_ASSOC,並忘記更改它再次感謝 –

+0

如果一個帖子回答你的問題,習慣的反應是upvote&接受它;) –