2011-03-08 36 views
0

評論後編輯的問題。它仍然不起作用。

那裏嗨,

我想了解PDO是如何工作的,但我的腳本:

$database = new PDO('mysql:host=localhost;dbname=***', '***', '***'); 
$query = $database->prepare("SELECT nombre, 
            tecnica, 
            tamanno, 
            estado FROM obra WHERE anno = ?"); 
$query->execute(array('2009')); 
while ($item = $query->fetch(PDO::FETCH_ASSOC)) { 
    $item['nombre']; 
} 

打印什麼。如果我做的:

var_dump($query->fetch()) 

我得到布爾(假)。在閱讀了很多例子後,我無法弄清楚我做錯了什麼。

在此先感謝。

+2

儘量不要在表格/字段名稱中使用特殊字符。並用'' – n00b 2011-03-08 22:54:48

+0

將它們包圍起來所有空白的catch塊都是什麼?如果連接失敗,您將不會在'$ database'中擁有有效的PDO對象 – Phil 2011-03-08 22:54:51

+3

您需要告訴PDO在出現錯誤時實際引發異常。見http://stackoverflow.com/questions/3726505/how-to-squeeze-error-message-out-of-pdo – 2011-03-08 22:55:44

回答

0
while ($item = $query->fetch(PDO::FETCH_ASSOC)) { 
    $item['nombre']; 
} 

什麼都不打印。

這是因爲你沒有真正做什麼用$item['nombre']。嘗試:

while ($item = $query->fetch(PDO::FETCH_ASSOC)) { 
    print_r($item); 
} 

您應該得到您的預期輸出。

如果沒有,嘗試添加該之前您的連接打開:

PDO::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

,並確保你有display_errors設置爲true。

+0

對我感到羞恥。謝謝。 – Tae 2011-03-10 13:51:58