PDO循环通过并打印FetchAll

2022-02-21 00:00:00 database php mysql pdo fetchall

从fetchAll获取要选择性打印的数据时遇到问题。

在正常的MySQL中,我是这样做的:

$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)){
   $id = $row['id'];
   $n = $row['n'];
   $k = $row['k'];
}

在PDO中,我遇到了麻烦。我绑定了参数,然后像上面一样将获取的数据保存到$rs中,目的是以相同的方式循环访问它。

$sth->execute();
$rs = $query->fetchAll();

现在麻烦来了。我应该怎么做PDO才能获得与上面的While循环匹配的内容?!我知道可以使用printr()或dump_var,但这不是我想要的。我需要做我过去使用常规MySQL所能做的事情,比如根据需要分别获取$id、$n、$k。有可能吗?

提前谢谢..


解决方案

应为

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['n'];
  $k = $row['k'];
}

如果您坚持fetchAll,那么

$results = $query->fetchAll(PDO::FETCH_ASSOC);
foreach($results as $row) {
   $id = $row['id'];
   $n = $row['n'];
   $k = $row['k'];
}

PDO::FETCH_ASSOC仅提取列名并省略数字索引。

相关文章