Mon cas n'est pas très facile à expliquer, et je suis vraiment bloqué. Je vais essayer d'être clair, et espère y réussir. Je suis évidement prêt à donner toutes informations complémentaires.
Par un script PERL je manipule une base de données mysql en utilisant le module DBI::
Ces manipulations se font seulement par des SELECT et UPDATE.
Une partie de ces maniputalions se fait dans une boucle WHILE parcourue entre une date de début et une date de fin.
Lorsque le script se termine et que je controle dans mysql ce qui s'est passé, toutes les manipulations faites sur les données de la derniere date de la boucle WHILE n'apparaissent pas. (il s'agit en fait de mettre un champ 'choix' TINYINT à 1. Pour la derniere date ce champ 'choix' reste desesperement à 0)
Si je fais un UPDATE dans mysql avec les mêmes conditions d'UPDATE que dans le script, le champ 'choix' passe bien à 1.
Si juste avant de sortir du script PERL ( par un classique : $dbh->disconnectje fais une lecture de la base par un SELECT et des print adéquats, le champ choix est donné à 1.
En résumé :
1 Tant que le script PERL tourne, il est possible de trouver et lire (par des commandes PERL) ces données de la derniere date. Mais dés que j'en sors il n'y a plus moyen de retrouver ces données de cette derniere date.
2 Si je stoppe le script PERL juste avant le '$dbh->disconnect' : les données sont existantes dans PERL (dans quelque buffer, que sais-je ?). Si je vais voir sous mysql, seules les mises à jour de la date de fin n'est pas disponible.
3 J'ai écrit un script séparé pour relire la base de données : il me donne les mêmes résultats que ceux que j'ai sous mysql : les données de la derniere date ne sont pas à jour.
Je ne comprends pas.
Si quelqu'un arrive à m'aider, cela m'enleverais une grosse épine du pied.
Partager