PDO多次获取相同的查询

时间:2013-04-15 21:20:48

标签: php pdo fetch

我从带有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)) 
            {
    ....
    }

每当我删除第一次抓取时,第二次正常工作。如果我同时拥有两者,则第二个不会返回任何内容。

谢谢!

2 个答案:

答案 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);