2013-04-15 2 views
0

PDO :: FETCH_ASSOC을 사용하여 db에서 결과를 가져옵니다. 문제는 내가 같은 파일에서 두 번하고 있다는 것입니다. 그게 알려진 문제입니까? 대안은 무엇입니까? 내가 처음 페치를 제거 할 때마다동일한 쿼리의 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

이렇게 여러 번 DB에서 가져올 수 없습니다. 대신이 작업을 수행합니다 : 배열을 반환합니다

$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);