Support API pour les transactions

Le serveur MySQL supporte les transactions suivant le moteur de stockage utilisé. Depuis MySQL 5.5, le moteur de stockage par défaut est InnoDB. InnoDB a un support complet des transactions ACID.

Les transactions peuvent soit ĂȘtre contrĂŽlĂ©es en utilisant SQL, soit par des appels API. Il est recommandĂ© d'utiliser les appels API pour activer ou dĂ©sactiver le mode autocommit et pour valider et annuler les transactions.

Exemple #1 Définir le mode autocommit via SQL ou via l'API

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Recommandé : utilisation de l'API pour contrÎler la configuration des transactions
$mysqli->autocommit(false);

// Ne sera pas monitoré et reconnu par le plugin de réplication et de balance de charge
$mysqli->query('SET AUTOCOMMIT = 0');

Les paquets de fonctionnalitĂ©s additionnelles, comme les plugins de rĂ©plication et de balance de charge peuvent monitorer les appels API. Le plugin de rĂ©plication offre une sĂ©curitĂ© sur les transactions lors de la balance de charge, si les transactions sont contrĂŽlĂ©es avec des appels API. La sĂ©curitĂ© des transactions lors de la balance de charge n'est pas disponible si les requĂȘtes SQL sont utilisĂ©es pour dĂ©finir le mode autocommit, pour valider ou annuler une transaction.

Exemple #2 Validation et annulation d'une transaction

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false);

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback();

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit();

Veuillez noter que le serveur MySQL ne peut pas annuler toutes les requĂȘtes. Quelques requĂȘtes requiĂšrent une validation implicite.

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.