php - PDO:多。行和列 - 如何循环数组?

标签 php mysql arrays pdo

这是我的数组:

当我在不同脚本中使用mysqli_query时,这种风格有效:

while ($printTest = mysqli_fetch_array($results)) {
    echo $printTest['id'] . "<br />"; 
    echo $printTest['questions'] . "<br />";
    echo $printTest['answers'] . "<br />";
}

我不知道如何使用 PDO 创建的数组执行相同的操作。通过 PDO,我可以使用 foreach,如下所示:

foreach ($queryRows as $test=>questions){
    echo $test; 
}

不幸的是,这并不能让我在同一循环中访问 idanswers - 这对我来说很重要。

这就是我当前获取 PDO 生成的数组的方式:

$queryRows = $this->dbh->query("SELECT id, questions, answers FROM qarows WHERE usr = '$this->username'");
$queryRows = $queryRows->fetchAll(PDO::FETCH_ASSOC);

如何循环访问数组的所有 3 列?

最佳答案

它仍然是相同的从数据库获取行。它仍然是相同的多维结构:

$select = $this->dbh->prepare('SELECT id, questions, answers FROM qarows WHERE usr = :usr');
$select->bindParam(':usr', $this->username);
$select->execute();
$queryRows = $select->fetchAll(PDO::FETCH_ASSOC);
foreach ($queryRows as $questions){
    echo $questions['id'] . '<br/>'; 
}

或者看起来像 mysqli:

$select = $this->dbh->prepare('SELECT id, questions, answers FROM qarows WHERE usr = :usr');
$select->bindParam(':usr', $this->username);
$select->execute();

while($printTest = $select->fetch(PDO::FETCH_ASSOC)) {
    echo $printTest['id'] . "<br />"; 
    echo $printTest['questions'] . "<br />";
    echo $printTest['answers'] . "<br />";
}

关于php - PDO:多。行和列 - 如何循环数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26839080/

相关文章:

php - SQL查询中的5分评分公式

php - MySQL 没有找到只对应一个用户名的行,但它确实存在?

php - 如何通过纬度和经度找到最近的位置?

php - 使用多个 select 语句和 php 变量插入

python - 如何构造一个适合 numpy 排序的数组?

php - 将php变量数据从一个页面传递到另一个页面

mysql - 使用 Coldfusion 备份 MySQL 数据库

mysql - 使用 MySQL/MariaDB 数据库创建 Docker 容器

php - 从特定键的嵌套数组行收集所有值

java - 在android中启动应用程序时初始化SQL