Ubuntu 8.04 LTSでPHP 5.2.4でUnixODBCを使用していて、IBM iにあるテーブルからすべての結果を取り出し、それらをローカルのMySQLテーブルに複製しようとしています。iSeriesへのODBC接続Odd結果の数
コードワイズはエラーなしで動作していますが、IBM iに含まれているものよりも多くの行があります。
私は25613行で終わるはずですが、PHPは25630行がMySQLデータベースに挿入されていることを報告します。私は、MySQLデータベースに見ると
$counter = 0;
while($row = odbc_fetch_array($result)) {
//Insert into MySQL using Zend Framework
$counter++;
}
echo $counter;
行の一部が実際に複製されます。私はodbc_fetch_array()の文書で、IBM iにアクセスする際の不安定な動作についての文書を見ましたが、その解決策を試すとスクリプトが実行されて終了するように見えることはありません。
何を確認するかについてのアイデアはありますか?
odbc_num_rows()は '-1'を返し、カウンタ付きのodbc_fetch_row()は25,630を返します。 – dragonmantank
odbc_num_rows()が正しく動作しない理由が分かりませんが、MySQLテーブルが切り捨てられず、重複行が発生していることがわかりました。 odbc_fetc_row()に切り替えた後、すべてが正しく同期されているようです。 – dragonmantank