2015-06-02 32 views
2

我正在開發一個小型PHP項目,並且正在從MySQLi更改爲PDO,即時通訊現在也使用準備好的語句。如何以PDO中的數組檢索查詢結果?

我已經設法連接到數據庫並執行查詢,但我想知道如何以數組的形式檢索結果?

我使用MySQLi中的fetch_assoc()函數來做到這一點,但現在即時通訊使用PDO和Prepared語句,我不知道如何做到這一點。

到目前爲止我的代碼...

$res = $connection -> prepare("SELECT * FROM ad WHERE id = :id"); 
    $res -> bindValue(':id',$id); 
    $res -> execute(); 

我聽說過使用此代碼,但它不工作?

$z= $res -> fetchAll(PDO::FETCH_ASSOC); 
    $productname = $z['productname']; 
+0

fetchALL返回索引爲0 - n的結果數據的數組。你可以在那裏使用'productname'這樣的密鑰。 – Vijay

回答

1

$z現在是一個多維數組,因此,如果您要訪問的第一行,你可以只顯式訪問指數爲零:

echo $z[0]['productname']; 

它應該是這個樣子:

Array 
(
    [0] => Array // index zero 
     (
      [id] => 1 
      [productname] => productname 1 // sub index 
     ) 
     // $z[0]['productname'] 
    [1] => Array 
     (
      [id] => 2 
      [productname] => productname 2 
     ) 
     // $z[1]['productname'] 
    [2] => Array 
     (
      [id] => 3 
      [productname] => productname 3 
     ) 
     // $z[2]['productname'] 
) 

如果您要訪問的所有行集,只要使用好醇」 foreach

foreach($z as $row) { 
    echo $row['productname']; 
} 
+0

謝謝!這工作得很好:) –

+0

@HarisMahmood肯定很高興這有幫助 – Ghost