13

我无法从 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();

现在是麻烦的部分。我该怎么做才能获得与上面的while循环匹配的东西?!我知道我可以使用 print_r() 或 dump_var,但这不是我想要的。我需要做以前可以用常规 mysql 做的事情,比如根据需要单独获取 $id、$n、$k。可能吗?

提前致谢..

4

1 回答 1

32

它应该是

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

于 2009-10-05T12:53:51.443 回答