Maison > développement back-end > tutoriel php > Comment gérer les transactions de base de données MySQL avec l'extension mysqli de PHP ?

Comment gérer les transactions de base de données MySQL avec l'extension mysqli de PHP ?

Susan Sarandon
Libérer: 2024-12-05 11:51:13
original
644 Les gens l'ont consulté

How to Manage MySQL Database Transactions with PHP's mysqli Extension?

Interroger la base de données MySQL avec des transactions

Utiliser des transactions avec mysqli

Les transactions sont un aspect crucial de la gestion de base de données, garantissant qu'une séquence d'opérations de base de données est soit entièrement exécuté, soit annulé si une erreur se produit. Avec l'extension mysqli de MySQL pour PHP, les transactions sont gérées via deux fonctions essentielles :

$mysqli->autocommit(FALSE); // Start transaction
$mysqli->commit(); // End transaction
Copier après la connexion

Démarrer une transaction

Pour lancer une transaction, vous devez appeler $mysqli->autocommit(FALSE );. Cela désactive la validation automatique, vous permettant d'exécuter plusieurs requêtes au sein de la même transaction.

Exécuter des requêtes dans une transaction

Une fois qu'une transaction est démarrée, vous pouvez exécuter n'importe quel nombre de requêtes à l'intérieur de celle-ci. Cependant, ces requêtes ne seront pas appliquées de manière permanente à la base de données tant que vous n'aurez pas explicitement validé la transaction.

Committing a Transaction

Le $mysqli->commit(); La fonction finalise la transaction et applique toutes les modifications apportées au cours de cette transaction à la base de données. S'il n'y a aucune erreur, la transaction réussit et les modifications deviennent permanentes.

Annuler une transaction

Si une erreur se produit lors d'une transaction ou si vous devez annuler les modifications apportées , vous pouvez appeler mysqli->rollback(); au lieu de mysqli->commit();. Cela annulera toutes les modifications apportées au sein de cette transaction et la base de données reviendra à son état précédent.

Exemple

L'extrait de code suivant montre comment démarrer et terminer une transaction dans mysqli :

$mysqli->autocommit(FALSE);

$mysqli->query("UPDATE `table` SET `col` = 2");
$mysqli->query("UPDATE `table1` SET `col1` = 3");

$mysqli->commit(); // End transaction
Copier après la connexion

Dans cet exemple, les deux instructions de requête sont exécutées au sein de la même transaction. Cependant, aucune modification n'est appliquée à la base de données tant que la transaction n'est pas validée. Si une erreur se produit avant $mysqli->commit(); est appelé, les modifications peuvent être annulées en appelant $mysqli->rollback();.

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