Maison > développement back-end > tutoriel php > Comment gérer efficacement les transactions MySQL en PHP ?

Comment gérer efficacement les transactions MySQL en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-19 10:41:16
original
131 Les gens l'ont consulté

How to Manage MySQL Transactions Effectively in PHP?

Exemples de transactions PHP MySQL

Les transactions en PHP et MySQL vous permettent de regrouper un ensemble de requêtes en une seule unité de travail atomique. Cela signifie que si l'une des requêtes échoue, toutes les modifications apportées par la transaction sont annulées.

Comment utiliser les transactions

Pour utiliser les transactions en PHP et MySQL, vous devrez :

  1. Démarrer une transaction en appelant mysql_query("SET AUTOCOMMIT=0") et mysql_query("START TRANSACTION").
  2. Exécutez vos requêtes.
  3. Si toutes les requêtes réussissent, validez la transaction en appelant mysql_query("COMMIT").
  4. Si l'une des requêtes échoue, annulez la transaction en appelant mysql_query("ROLLBACK").

Exemple

Voici un exemple simple de la façon d'utiliser les transactions en PHP et MySQL :

mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");

$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");

if ($a1 and $a2) {
    mysql_query("COMMIT");
} else {        
    mysql_query("ROLLBACK");
}
Copier après la connexion

Dans cet exemple, l'instruction COMMIT n'est exécutée que si $a1 et $a2 réussissent. Si l'une des requêtes échoue, l'instruction ROLLBACK est exécutée.

Utilisation de transactions avec PDO

La classe PDO offre une manière plus moderne et orientée objet de travailler avec Transactions MySQL. Pour utiliser des transactions avec PDO, vous devrez :

  1. Créer un objet PDO et définir l'attribut PDO::ATTR_ERRMODE sur PDO::ERRMODE_EXCEPTION.
  2. Démarrer une transaction en appelant $ pdo->beginTransaction().
  3. Exécutez votre requêtes.
  4. Si toutes les requêtes réussissent, validez la transaction en appelant $pdo->commit().
  5. Si l'une des requêtes échoue, annulez la transaction en appelant $pdo->rollback().

Exemple

Voici un exemple d'utilisation des transactions avec PDO :

try {
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->beginTransaction();

    $pdo->exec("INSERT INTO rarara (l_id) VALUES('1')");
    $pdo->exec("INSERT INTO rarara (l_id) VALUES('2')");

    $pdo->commit();
} catch (\PDOException $e) {
    $pdo->rollback();
    throw $e;
}
Copier après la connexion

Dans cet exemple, la méthode commit() n'est appelée que si les deux requêtes réussissent. Si l'une des requêtes échoue, la méthode rollback() est appelée et une exception est levée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal