[Transaction] Comment bien le traiter ?
Bonjour à tous,
j'ai besoin d'utiliser les transactions.
Je ne parle pas de la BD que j'utilise car ma préoccupation est plus de savoir comment procéder pour bien traiter une transaction.
Comme mysql est fortement utilisé, je l'utiliserai dans mon exemple.
La base SQL :
Code:
1 2 3 4
|
BEGIN
les requêtes SQL (ajout, modif, suppression, ...)
COMMIT (si tout est ok) ou ROLLBACK (en cas de souci) |
Solution 1
Code:
1 2 3 4 5 6 7 8
|
<?php
$resultat = mysql_query("BEGIN;DELETE FROM utilisateurs WHERE id=10;INSERT INTO utilisateursPro VALUES (10,'Durand','Jean-Michel');COMMIT");
if($resultat !== FALSE)
echo "Jean-Michel Durand est passé pro";
else
echo "Echec de la transaction";
?> |
Solution 2
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$resultat = mysql_query("BEGIN;");
if($resultat !== FALSE) {
echo "Jean-Michel Durand est passé pro";
$resultat = mysql_query("DELETE FROM utilisateurs WHERE id=10;INSERT INTO utilisateursPro VALUES (10,'Durand','Jean-Michel');
if($resultat !== FALSE)
$resultat = mysql_query("COMMIT;");
else
echo "Echec de la transaction";
}
else
echo "Echec de la transaction"; |
La solution 1 est apparemment déconseillée, quant à la solution 2, pour moi, elle n'a pas de sens, étant donné que les requêtes sont bien envoyés les unes à la suite des autres mais elles sont indépendantes (envoyés dans des mysql_query différent).
Mais dans ce cas, comment procéder pour bien traiter une transaction ?
Merci d'avance pour vos aides/suggestions.