Соединение ODBC с iSeries дает нечетное количество результатов
-
10-07-2019 - |
Вопрос
Я использую 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 ()
?
Эти и другие методы могут помочь вам устранить ошибку.