我在Ubuntu 8.04 LTS上使用UnixODBC和PHP 5.2.4并尝试从位于IBM i上的表中提取所有结果并将它们复制到本地MySQL表。

代码方面,它没有任何错误,但我最终得到的更多行包含在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数据库时,某些行实际上是重复的。我在 odbc_fetch_array()访问IBM i时有关不稳定行为的文档,但尝试该解决方案会导致脚本运行并运行,而不会看似完成。

有关检查内容的任何想法?

有帮助吗?

解决方案

每次都重复相同的行吗?如果是这样,这些记录是否有任何独特之处可以暗示它们为何重复?

也许使用另一个绑定来获得结果 - 比如odbc_fetch_row()odbc_num_rows()说什么?

这些和其他技术可能会帮助您解决错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top