Batman-Fr a écrit a écrit :
j'ai quelques bases en SQL mais je n'ai jamais utilisé commit et rollback alors que ca a l'air d'etre essentiel.
J'effectue mes requetes avec le driver ODBC en PHP.
Malgré mes recherches, je n'ai trouvé aucun exemple de script utilisant commit et rollback.
Pouvez-vous me donner un exemple succint s'il vous plaît afin que je vois comment on utlise ca?
merci d'avance
|
Quelle base de données (oracle, access, mysql ?)
Est ce que t'as déjà utiliser des "transactions" avec une base de donnée?
Bon, déjà, il me semble que mysql ne possède pas de système de transaction, du coup, pas de commit ou de rollback possible en php.
De plus, php fonctionne en système d'envoie immédiat des requêtes de mise à jour et donc sans passer par un cache au niveau de php, donc si la base de donnée n'a pas de système de transaction, je vois pas quand tu veux faire un commit ou un roolback.
Pour l'utilisation du commit et du rollback, de manière théorique, ca marche comme suit :
1) on démarre une transaction
2) on envoie les requêtes une par une
3) la base de donnée exécutes les requêtes et stockes les données modifié dans des tables temporaires
4-1) si une requête tombe en erreur, on fait un rollback et la base de donnée se contente d'oublier purement et simplement les mises à jour que tu lui avait demandé depuis le début de la transaction
4-2)si aucune requête tombe en erreur, tu fais un commit et là, la base de donnée stocke les modifications comme elle l'aurait fait s'il y avait pas eu de transaction
5) on referme la transaction et les requêtes suivantes sont géré comme d'habitude.
Bon, en pratique, du côté de la base de donnée, c'est surement pas géré tout à fait comme ça mais au moins, mon explication permet de mieux comprendre comment c'est fait.
Sinon, je n'ai jamais utilisé de transaction en php et donc je n'ai aucun exemple de commit ou roolback à te présenter.