2013-04-15 72 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);