2015-06-02 33 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