2013-04-15 76 views
0

我正在使用PDO :: FETCH_ASSOC从数据库读取结果。问题是我在同一个文件中做了两次。这是一个已知的问题吗?什么是替代方案?PDO多次读取相同的查询

这里是我的代码:

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

您无法从数据库中多次获取数据。改为:

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

... 

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

... 

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

语句句柄('$ ordersQuery')不包含结果集。你的意思是迭代'$ orders'吗? –

+0

啊,是的,我做到了。 – JRL

0

使用fetchAll()将返回一个数组。然后你可以多次循环遍历它:

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