我无法从fetchAll获取数据以便有选择地进行打印。
在普通的mysql中我这样做:
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)){
$id = $row['id'];
$n = $row['n'];
$k = $row['k'];
}
在PDO中,我遇到了麻烦。我绑定了params,然后我将获取的数据保存到上面的$ rs中,目的是以相同的方式循环它...
$sth->execute();
$rs = $query->fetchAll();
现在出现了问题。我该怎么做PDO-wise来获得与上面的while循环相匹配的东西?!我知道我可以使用print_r()或dump_var,但这不是我想要的。我需要做我以前能用普通mysql做的事情,比如根据需要单独抓取$ id,$ n,$ k。有可能吗?
提前致谢..
答案 0 :(得分:25)
应该是
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
仅提取列名并省略数字索引。