Historique des conversations
Chargement...
Une transaction est un ensemble d'opérations SQL qui doivent toutes réussir ou toutes échouer.
Exemple : Transfert bancaire (débiter un compte ET créditer un autre).
-- Démarrer une transaction
START TRANSACTION;
-- ou
BEGIN;
-- Valider la transaction
COMMIT;
-- Annuler la transaction
ROLLBACK;
START TRANSACTION;
-- Débiter le compte A
UPDATE comptes SET solde = solde - 100 WHERE id = 1;
-- Créditer le compte B
UPDATE comptes SET solde = solde + 100 WHERE id = 2;
-- Si tout est OK
COMMIT;
-- Si erreur
-- ROLLBACK;
<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=banque", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Démarrer la transaction
$pdo->beginTransaction();
// Débiter
$sql1 = "UPDATE comptes SET solde = solde - 100 WHERE id = 1";
$pdo->exec($sql1);
// Créditer
$sql2 = "UPDATE comptes SET solde = solde + 100 WHERE id = 2";
$pdo->exec($sql2);
// Valider
$pdo->commit();
echo "Transfert réussi";
} catch (Exception $e) {
// Annuler en cas d'erreur
$pdo->rollBack();
echo "Erreur : " . $e->getMessage();
}
?>
Vous maîtrisez les transactions ! Prochain chapitre : Projet MySQL.
Testez vos compétences avec nos exercices guidés et le tuteur IA.
Expliquez avec vos mots le concept principal de ce chapitre, puis illustrez-le par un exemple simple.
Réalisez un exercice pratique en reprenant la structure vue dans le cours et en modifiant au moins 2 paramètres.
Concevez une petite solution personnelle liée à ' Gestion des transactions' et justifiez vos choix techniques.