Question

J'utilise UnixODBC avec PHP 5.2.4 sur Ubuntu 8.04 LTS et j'essaie d'extraire tous les résultats d'une table située sur un IBM i et de les répliquer sur une table MySQL locale.

En termes de code, cela fonctionne sans erreur, mais je termine avec plus de lignes que celles contenues dans IBM i.

Je devrais me retrouver avec 25 613 lignes, mais PHP indique que 25 630 lignes sont insérées dans la base de données MySQL:

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

Lorsque je regarde dans la base de données MySQL, certaines des lignes sont en fait dupliquées. J'ai vu une note sur la odbc_fetch_array () documentation sur les comportements erratiques lors de l’accès à IBM i, mais l’essai de cette solution force le script à s’exécuter et à s’exécuter sans jamais sembler se terminer.

Avez-vous des idées sur ce qu'il faut vérifier?

Était-ce utile?

La solution

S'agit-il des mêmes lignes dupliquées à chaque fois? Si tel est le cas, y at-il quelque chose d'unique dans ces enregistrements qui pourrait indiquer pourquoi ils sont dupliqués?

Utilisez peut-être une autre liaison pour obtenir des résultats, comme odbc_fetch_row () . Que dit odbc_num_rows () ?

Ces techniques, entre autres, pourraient vous aider à vous concentrer sur le bogue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top