try catch imbriqués. [PHP] - PHP - Programmation
Marsh Posté le 11-06-2010 à 16:19:35
je ferai un truc comme ça
Code :
|
Marsh Posté le 11-06-2010 à 16:24:58
flo850 a écrit : je ferai un truc comme ça |
J'ai eu la même idée, mais le problème, c'est qu'en cas d'erreur lors du premier try, on se tapera quand même le deuxième, qui n'a pas lieu d'être exécuté...
Marsh Posté le 11-06-2010 à 16:33:26
mais sinon, je fusionnerai , les deux
rollback se chargera de remettre tout en etat en cas de problème
Marsh Posté le 11-06-2010 à 16:34:22
pour la gestion des erreurs de PDO y'a plus simple que de faire des try...catch partout
http://php.net/manual/fr/pdo.error-handling.php
Marsh Posté le 11-06-2010 à 16:37:08
Slt, tout d'abord merci de t'intéresser à mon pb.
En suite, dis moi si je me trompe mais ton code risque d'exécuter les updates même en cas d'erreur du premier try catch, ce qui fausserait le resultat puisque le dernier id insérer ne correspondrait à ce qu'il serait en cas d'insert reussit.
EDIT: ouh, c'est allé vite.. j'avais pas fait gaf non plus au return... je regarde je tiens au courant.
Marsh Posté le 11-06-2010 à 16:57:07
Re.
En fait je connais le lien mais je ne vois pas comment gérer les erreurs sans interrompre le code d'une meilleurs façon qu'avec les exceptions. Peux-tu détailler ?
Si non, le rollback me parait un bon plan. confirmation: le return renvoie où? pq l'idée est de ne pas sortir du script...
edit.
Peut-être une solution serait de reprendre ton script (flo850) mais d'instencier l'exception et de vérifier par la suite si elle est unset ou pas si non, alors on effectue le deuxième try catch.
Marsh Posté le 11-06-2010 à 17:18:37
mieux :
Code :
|
Marsh Posté le 11-06-2010 à 17:26:56
yep, c'est ce que j'ai fait en re-regardant la doc de begintransaction/rollback/commit j'ai vu qu'on revenait à l'état d'avant; donc qu'il y ait eu une erreur ou dix, la bdd n'est pas modifiée.
Ce qui fait même gagner en temps d'exécution puisqu'on ne modifie la bdd qu'en étant sûr de pas revenir sur les modifications.
Merci à tous ça m'a bien aidé.
Marsh Posté le 11-06-2010 à 16:14:15
Salut,
J'ai une question sur l'utilisation de try catch imbriqués lors d'opération PDO sur une bdd.
Le code est schématique mais le principe est là:
L'idée est d'effectuer des opérations dépendantes entre-elles (une opération ne peut s'effectuer que si la précédent s'est bien déroulée) sur une bdd sans arrêt en cas d'erreur à l'une d'elles et avec la possibilité de déterminer quelle opération à lancé l'exception;
Voila, je cherche à savoir si mon pseudo-code n'est pas bon, alors quelle est la bonne méthode, sachant que mon pseudo code représente deux imbrications mais qu'il peut y en avoir plus...
Merci à tous.
Message édité par durk le 11-06-2010 à 16:18:00