|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Bonjour,
Est ce possible avec la librairie PDO (abstration de données) de savoir si une transaction a été commencée sur une connexion ou non ... J'ai besoin de ça pour faire le cas échéant un rollback() quand une exception est levée. En gros j'aimerais bien faire un genre de Code :
Merci de vos idées ... |
||
|
00
|
|
|
#2 | ||
|
Nouveau Membre du Club
![]() Inscription : janvier 2006 Messages : 43 ![]() |
Avec ce que j'ai compris, c'est toi qui décide quand commence une transaction [beginTransaction()] et quand elle se termine [commit()].
Ensuite le rollBack() se met en action tout seul dès qu'une des requêtes SQL comprises entre le début et la fin de la transaction rencontrent un problème. Code :
C'est ici |
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
En fait quelques cas se produisent où une exception est levée alors que la transaction n'a pas commencée (par exemple à l'initialisation de la connexion)
Dans ce cas de figure j'aimerais savoir si j'ai démarré ou non une transaction. (pour faire un rollback ou non). Pour ce qui est du retour d'expérience je regarde ça ... en tout cas merci d'avoir répondu |
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2006 Messages : 43 ![]() |
Si une exception est lancée lors de l'initialisation de la connection, il n'y a pas de connection et la transaction n'a pu commencer... Tu n'as qu'à mettre tout dans le Try (déclaration de ta connection et toute ta transaction) et à la moindre erreur, le Catch prend le relais...
Regarde l'exemple 5 de PDO sur coolcoyote.net : lien. J'espère avoir bien compris ton problème et avoir pu t'aider Bien à vous tous... |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() ERIC POMMEREAUIngénieur intégration Inscription : décembre 2004 Messages : 683 ![]() |
Tous mes traitements DB ou autres sont dans des classes. Si un de mes traitement (la lecture de mon fichier de configuration par exemple) merde, une exception est levée et je récupère ça dans mon catch.
Dans mon catch je voudrais, dans le cas où je suis en train de toucher à ma base, pouvoir passer ou non mon rollback. Désolé si je ne m'explique pas super bien !!! Code :
|
||
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2006 Messages : 43 ![]() |
Tu peux effectivement faire plusieurs catch selon les différentes erreurs rencontrées. Pour ma part, je n'ai pas encore mis cela en place, mais cela m'intéresse. Il faut tester...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com