Bonjour,
Je souhaiterais savoir comment faire une transaction MySQL.
J'ai pas mal cherché sur le web mais rien ne fonctionne.
Il faut utiliser COMMIT et ROOLBACK.
merci d'avance![]()
Bonjour,
Je souhaiterais savoir comment faire une transaction MySQL.
J'ai pas mal cherché sur le web mais rien ne fonctionne.
Il faut utiliser COMMIT et ROOLBACK.
merci d'avance![]()
La documentation est pourtant simple :
http://dev.mysql.com/doc/refman/5.0/fr/commit.html
Quel probleme rencontres-tu ?
Merci pour le tuto mais je n'arrive pas à l'intégrer voici mon code :
Puis-je avoir un exemple ? merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $insertion = "INSERT INTO materiel VALUES ('' , 'ordinateur');"; $result = mysql_query($insertion); if ($result == TRUE) { echo 'valider les changement dans la base de données'; }else{ echo 'annuler les changement dans la base de données'; }![]()
Je ne vois rien dans votre code qui reprenne l'exemple de transaction que je vous ai donné.
Pensez juste bien que mysql_query() traite une seule requete a la fois et donc qu'il faut ecrire chaque instruction de la transaction dans un mysql_query() different.
Par contre pour suivre la logique de ce que vous avez ecris, dans le cas ou mysql_query() renvoit FALSE, il n'y aurait rien a annuler puisque la requete n'aurait pas été traité.
Je ne savais pas que l'on devais recommencer une transaction après chaque requête merci de me l'avoir dit
Dans mon cas je fais plusieurs insertions et si une se passe mal, j'annule toutes celles déjà faites.
Je ne vois pas trop comment faire ça avec "mysql_query()" avez-vous une solution niveau code merci.![]()
J'ajouterai que les transaction seront utilisées quand les requetes SQL se sont executé sans erreur. De plus les transactions seront interressante dans le cas de plusieurs operations atomiques DML
exemple de transaction bancaire d'un compte A vers un compte B
Le but c'est d'assurer que le transfers d'argent se fasse normalement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 mysql_query("start transaction"); mysql_query("Soustraire 100 euro du compte A"); // pseudo requete mysql_query("Ajouter 100 euro au compte B"); // pseudo requete mysq_query("commit"); // enregister les changement
Merci buggen25 je commence a me rendre compte que les transactions ne sont pas adaptés à mon cas.
Comment puis-je faire alors pour annuler toutes les insertions que j'ai faites dans la base de données si une à eu un problème ?
merci![]()
Partager