我从带有PDO :: FETCH_ASSOC的数据库中获取结果。问题是我在同一个文件中做了两次。这是一个已知问题吗?会有什么替代方案?
这是我的代码:
FIRST TIME
while($row = $ordersQuery->fetch(PDO::FETCH_ASSOC))
{
$totalAmount += $row['clientPrice']/100;
}
echo $totalAmount;
SECOND TIME
while($row = $ordersQuery->fetch(PDO::FETCH_ASSOC))
{
....
}
每当我删除第一次抓取时,第二次正常工作。如果我同时拥有两者,则第二个不会返回任何内容。
谢谢!
答案 0 :(得分:6)
您无法像这样多次从DB中获取数据。这样做:
$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);
...
foreach ($orders as $val) {
// stuff 1
}
...
foreach ($orders as $val) {
// stuff 2
}
答案 1 :(得分:0)
使用fetchAll()将返回一个数组。然后,您可以根据需要多次循环:
$ orders = $ ordersQuery-> fetchAll(PDO :: FETCH_ASSOC);