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

标签 php mysql arrays pdo mysqli

我正在做一个小型 PHP 项目,我正在从 MySQLi 更改为 PDO,我现在也在使用准备好的语句。

我已成功连接到数据库并执行查询,但我想知道如何以数组形式检索结果?

我在 MySQLi 中使用 fetch_assoc() 函数来执行此操作,但现在我使用 PDO 和 Prepared statements,我不知道如何完成此操作。

到目前为止我的代码...

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

我听说过使用此代码但它不起作用?

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

最佳答案

$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']
)

如果你想访问所有的行集,只需使用好的 ol'foreach:

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

关于php - 如何在 PDO 中将查询结果检索为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30592443/

相关文章:

php - 如果没有 WARNING_COUNT,Mysql,php 如何插入表

php - INNODB,mysql - 多行的外键?

mysql - 分页统计报告

ruby - 为什么 array.each 内的 ruby​​ array.delete_at 失败?

php - CakePHP 迁移脚本不更新表模型

javascript - 如何在 windows.location href 中插入变量?

php - 如何调试 Codeigniter 4

mysql - 使用 Slick 3.0 调用简单的数据库过程

java - 从文件读取后添加数组中的数字总和

javascript将关联数组推送到另一个中