Соединение ODBC с iSeries дает нечетное количество результатов

StackOverflow https://stackoverflow.com/questions/635550

Вопрос

Я использую UnixODBC с PHP 5.2.4 в Ubuntu 8.04 LTS и пытаюсь получить все результаты из таблицы, расположенной в IBM i, и скопировать их в локальную таблицу MySQL.

В коде это работает без ошибок, но я получаю больше строк, чем содержится в IBM i.

Я должен получить 25 613 строк, но PHP сообщает, что в базу данных MySQL вставлено 25 630 строк:

$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