Récupérer le résultat d'une requète SQL [Perl] - Perl - Programmation
Marsh Posté le 17-12-2008 à 02:52:52
Si tu fais un
$dbh->{RaiseError} = 0;
apres la connection, et avant ton prepare, ca plante toujours?
Citation : $sth->execute() or die "Unable to execute query: $dbh->errstr"; |
Normalement, tu as un message d'erreur accessible avec $dbh->errstr() apres ton prepare, et $sth->errstr() apres to execute. Donc la ca devrait etre $sth->errstr().
A+,
Marsh Posté le 17-12-2008 à 11:23:21
Normalement le prepare() ne devrait pas échouer. C'est le execute() qui devrait échouer. Je ne sais pas si c'est la bonne méthode, mais quand j'ai eu à gérer ce genre de problème j'ai fais comme ça :
if (!$sth->execute($toto)) { |
Je pense que le code d'erreur qui indique un conflict sur une donnée UNIQUE (23505 chez moi, avec db2) varie suivant les DB, donc il faut faire le test chez toi pour récupérer le bon code d'erreur.
Marsh Posté le 17-12-2008 à 14:01:32
Merci à vous deux, normalement, la technique matafan devrait fonctionner, je vous tiens au jus si ça merde.
Marsh Posté le 16-12-2008 à 17:08:45
Dans mon code Perl, j'effectue une commande SQL de ce genre :
Or, dans ma table toto, l'entrée "index" est une clé unique, donc quand on fait une insertion d'une valeur avec un index déjà dans la table, l'insertion ne s'effectue pas et c'est tout à fait normal.
Problème 1 : Si l'insertion ne marche pas, mon code plante et ne continue pas
Problème 2 : Je veux récupérer le message me disant que l'insertion n'a pas eu lieu => ceci permettant d'identifier ce que l'utilisateur doit faire (champ à remplir / changer etc)
Quelqu'un aurait-il une idée pour solutionner l'un de ces deux problèmes ?
Merci d'avance !
Par ailleurs, la commande :
ne marche pas également ...
Message édité par Thordax le 16-12-2008 à 17:18:38
---------------
Atari 520 ST 256 Ko