2009-03-11 4 views
1

Ubuntu 8.04 LTS에서 UnixODBC를 PHP 5.2.4와 함께 사용하고 IBM i에있는 테이블에서 모든 결과를 가져 와서 로컬 MySQL 테이블에 복제하려고합니다.iSeries에 ODBC 연결 Odd 결과 수

코드없이 오류없이 작동하지만 IBM i에 들어있는 행이 더 많아집니다.

나는 25,613 행으로 끝날해야하지만 PHP는 25,630 행이 MySQL 데이터베이스에 삽입되고 있음을보고합니다

$counter = 0; 
while($row = odbc_fetch_array($result)) { 
    //Insert into MySQL using Zend Framework 
    $counter++; 
} 
echo $counter; 

내가 행의 일부가 실제로 중복 MySQL 데이터베이스에서 볼 때. IBM i에 액세스 할 때 비정상적인 동작에 대한 odbc_fetch_array() 설명서를 읽었지만 해당 솔루션을 사용하면 스크립트가 실행되지 않고 끝나지 않고 실행됩니다.

확인할 사항에 대한 아이디어가 있으십니까?

답변

0

매번 동일한 행이 복제됩니까? 그렇다면 중복 된 이유를 암시 할 수있는이 레코드에 대해 고유 한 것이 있습니까?

odbc_fetch_row()과 같은 결과를 얻기 위해 다른 바인딩을 사용했을 수도 있습니다. odbc_num_rows()의 내용은 무엇입니까?

이러한 기술 및 기타 기술을 사용하면 버그를 처리하는 데 도움이 될 수 있습니다.

+0

odbc_num_rows()는 '-1'을 반환하고 카운터가있는 odbc_fetch_row()를 수행하면 25,630을 반환합니다. – dragonmantank

+0

odbc_num_rows()가 제대로 작동하지 않는 이유가 확실하지 않지만 MySQL 테이블이 잘리지 않아 중복 행이 발생한다는 것을 알았습니다. odbc_fetc_row()로 전환 한 후 모든 것이 올바르게 동기화되는 것 같습니다. – dragonmantank