3

我正在使用 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)) 
            {
    ....
    }

每当我删除第一个提取时,第二个都可以正常工作。如果我两者都有,第二个不会返回任何东西。

谢谢!

4

2 回答 2

7

您不能像这样多次从数据库中获取数据。改为这样做:

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);

...

foreach ($orders as $val) {
    // stuff 1
}

...

foreach ($orders as $val) {
    // stuff 2
}
于 2013-04-15T21:23:27.970 回答
0

使用 fetchAll() 将返回一个数组。然后,您可以根据需要循环多次:

$orders = $ordersQuery->fetchAll(PDO::FETCH_ASSOC);

于 2013-04-15T21:27:42.940 回答