一尘不染

PDO遍历和打印fetchAll

mysql

我无法从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循环匹配的东西?我知道我可以使用print_r()或dump_var,但这不是我想要的。我需要做以前可以使用普通mysql进行的操作,例如根据需要分别获取$
id,$ n,$ k。可能吗?

提前致谢..


阅读 354

收藏
2020-05-17

共1个答案

一尘不染

它应该是

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 仅获取列名,并省略数字索引。

2020-05-17