如何在PDO中将查询结果检索为数组?

时间:2015-06-02 09:37:57

标签: php mysql arrays pdo mysqli

我正在开发一个小型PHP项目,并且从MySQLi更改为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'];

1 个答案:

答案 0 :(得分: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'];
}