Frage

Ich verwende UnixODBC mit PHP 5.2.4 auf Ubuntu 8.04 LTS und versuche, alle Ergebnisse aus einer Tabelle zu ziehen, auf einem IBM i sitzen und replizieren, sie zu einer lokalen MySQL-Tabelle.

-Code-weise ist es ohne Fehler arbeiten, aber ich bin mit der Endung mehr Zeilen auf, die was auf dem IBM i enthalten ist.

Ich sollte sich mit 25.613 Zeilen enden aber PHP berichtet, dass 25.630 Zeilen eingefügt werden in die MySQL-Datenbank:

$counter = 0;
while($row = odbc_fetch_array($result)) {
    //Insert into MySQL using Zend Framework
    $counter++;
}
echo $counter;

Wenn ich in der MySQL-Datenbank sehen sind einige der Zeilen tatsächlich dupliziert. Ich sah eine Notiz auf dem odbc_fetch_array () Dokumentation über erratisches Verhalten, wenn die IBM Zugriff auf i, aber diese Lösung versucht, bewirkt, dass das Skript, ohne jemals scheint zu Ende laufen und läuft.

Alle Ideen, was zu überprüfen?

War es hilfreich?

Lösung

Ist es die gleichen Zeilen jedes Mal dupliziert werden? Wenn ja, gibt es etwas, das Besondere an dieser Aufzeichnungen, die auf, warum sie dupliziert andeuten könnte?

Vielleicht eine andere Bindung verwenden für das Erzielen von Ergebnissen - wie odbc_fetch_row(). Was sagt odbc_num_rows()?

Diese und andere Techniken können Sie auf der Bug helfen Zone.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top