2012-08-26 115 views
1

新的mysql和非常新的PDO - 但我試圖學習大量的教程。PHP PDO選擇語句不起作用

我試圖抓住數據庫中對應於用戶ID的條目,然後使用它在配置文件頁面上回顯用戶名等。

$stmt = $conn->query('SELECT * FROM clients WHERE id = 42'); 
$results = $stmt->fetchAll(PDO::FETCH_ASSOC); 

    // Content here... 

echo $results['firstname']; 

這是給我一個錯誤名字未定義 - 我究竟做錯了什麼?

工作過這個教程:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

回答

2

嘗試去改變它:

$results = $stmt->fetch(PDO::FETCH_ASSOC) 

爲您正在請求從數據庫中單列,而不是一個陣列行

PDOStatement::fetchAll — Returns an array containing all of the result set rows 
PDOStatement::fetch — Fetches the next row from a result set 
+0

隨着尊重,這將改變什麼?你只是將它從fetchall更改爲獲取...? – Jonathan

+0

這實際上修復了它。我只是在研究Fetch和fetchall之間的區別 – cantaffordretail

+0

哇,我真的很震驚。 +1爲了我。 @mcflause,我也建議檢查一下準備好的語句。很有用。 – Jonathan