Php 到iSeries的ODBC连接提供奇数个结果
我在Ubuntu8.04LTS上使用UnixODBC和PHP5.2.4,试图从IBMi上的一个表中提取所有结果,并将它们复制到本地MySQL表中 代码方面,它工作时没有错误,但我最终得到的行数比ibmi上包含的行数多 我应该以25613行结束,但PHP报告说25630行正在插入MySQL数据库:Php 到iSeries的ODBC连接提供奇数个结果,php,mysql,odbc,ibm-midrange,unixodbc,Php,Mysql,Odbc,Ibm Midrange,Unixodbc,我在Ubuntu8.04LTS上使用UnixODBC和PHP5.2.4,试图从IBMi上的一个表中提取所有结果,并将它们复制到本地MySQL表中 代码方面,它工作时没有错误,但我最终得到的行数比ibmi上包含的行数多 我应该以25613行结束,但PHP报告说25630行正在插入MySQL数据库: $counter = 0; while($row = odbc_fetch_array($result)) { //Insert into MySQL using Zend Framework
$counter = 0;
while($row = odbc_fetch_array($result)) {
//Insert into MySQL using Zend Framework
$counter++;
}
echo $counter;
当我查看MySQL数据库时,有些行实际上是重复的。我在文档中看到了一条关于访问IBMi时的不稳定行为的注释,但是尝试该解决方案会导致脚本不断地运行,而且似乎从未完成
关于检查什么有什么想法吗?每次复制的行是否相同?如果是这样的话,这些记录是否有什么独特之处可以暗示它们为什么会被复制 也许可以使用另一个绑定来获取结果,比如
odbc\u fetch\u row()
。odbc\u num\u rows()
这些技术和其他技术可能会帮助您了解这个错误。odbc_num_rows()返回“-1”,使用计数器执行odbc_fetch_row()返回25630。虽然我不确定odbc_num_rows()为什么工作不正常,但我发现MySQL表没有被截断并导致重复的行。切换到odbc_fetc_row()后,现在一切似乎都在正确同步。