2011-12-20 2 views
1

현재 프로젝트에서 사용하고 있습니다. ADODB 데이터베이스와의 통합을위한 라이브러리입니다. PDO으로 마이그레이션하고 싶지만 상담에 대한 질문이 있습니다.메서드 "moveFirst()"ADODB, PDO equivalent

현재 ADODB를 사용하여 쿼리를 수행하고 MoveFirst() 메서드를 사용하여 여러 번 행을 사용합니다.

예 :

//I consultation 
$rs = $conn->execute('select * from mytable'); 

//Loop through the results 
while(!$rs->EOF) { 
    echo $rs->fields('name'); 
    $rs->MoveNext(); 
} 

//I move the "pointer" to the beginning of the list 
$rs->MoveFirst(); 

//I can go over the results without needing to re-select 
while(!$rs->EOF) { 
    echo $rs->fields('name'); 
    $rs->MoveNext(); 
} 

PDO와 유사한 어떤 방법이 있는지 궁금 그래서 다시 쿼리를 실행할 필요가 없습니다. 목표는 동일한 쿼리를 사용하기 때문에 더 자주 벤치에서 불필요한 쿼리를 피하는 것입니다.

답변

0

데이터베이스 연결을 통해 결과 집합을 두 번 이상 반복하려는 이유가 확실하지 않습니다. 처음으로 데이터를 검색하고 저장할 때 네트워크를 통해 데이터를 다시 가져 오는 이유는 무엇입니까? 그러나 당신이 찾고있는 것은 스크롤 가능한 커서이다. 이것은 mysql에서 지원하지 않는다. 적어도 PHP/MySQL 드라이버를 통해서는 안됩니다. PDO가 지원하는 버퍼링/버퍼되지 않은 쿼리를 조사 할 수도 있습니다.

PDO :: CURSOR_SCROLL http://www.php.net/manual/en/pdo.prepare.php

+0

목표는 내가 원하는 얼마나 많은 시간 ADODB에서 설정 한 행에 액세스 할 수 있기 때문에, 첫 번째 루프에서 결과를 저장하는 루틴을 수행 할 필요가 없습니다 것입니다. PDO에서 두 번 이상 결과를 사용하고 싶을 때마다 결과를 배열에 저장하는 루틴을 두 번 이상해야합니다. PDO :: CURSOR_SCROLL을 사용하는 예가 있습니까? –