Aller au contenu

autocommit

Dans cet article, nous nous concentrerons sur la fonction mysqli_autocommit() en PHP, utilisée pour activer ou désactiver la fonctionnalité d'autocommit dans les transactions MySQLi. Nous vous fournirons un aperçu de la fonction, son fonctionnement et des exemples d'utilisation.

Introduction à la fonction mysqli_autocommit()

La fonction mysqli_autocommit() est une fonction intégrée à PHP utilisée pour activer ou désactiver la fonctionnalité d'autocommit dans les transactions MySQLi. Lorsque l'autocommit est activé, chaque instruction SQL est traitée comme une transaction distincte et est automatiquement validée. Lorsque l'autocommit est désactivé, vous devez explicitement valider ou annuler les transactions à l'aide des fonctions mysqli_commit() et mysqli_rollback().

Comment utiliser la fonction mysqli_autocommit()

L'utilisation de la fonction mysqli_autocommit() est très simple. Il suffit d'appeler la fonction en lui passant une connexion MySQLi valide et une valeur booléenne représentant l'état de l'autocommit.

Paramètres :

  • connection (procédural) / $mysqli (POO) : L'objet de connexion MySQLi.
  • mode (bool) : TRUE pour activer l'autocommit, FALSE pour le désactiver.

Valeur de retour : Retourne TRUE en cas de succès, FALSE en cas d'échec.

Remarque : MySQLi prend en charge à la fois la syntaxe orientée objet et procédurale. Les exemples ci-dessous utilisent la méthode POO $mysqli->autocommit(). L'équivalent procédural est mysqli_autocommit($link, $mode).

Voici un exemple :

Comment utiliser la fonction mysqli_autocommit()

php
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$mysqli->autocommit(FALSE);

$mysqli->query("INSERT INTO users (name, email) VALUES ('John', '[email protected]')");
$mysqli->query("UPDATE users SET name='John Doe' WHERE id=1");

$mysqli->commit();

$mysqli->autocommit(TRUE);

$mysqli->close();
?>

Dans cet exemple, nous créons un nouvel objet MySQLi et désactivons l'autocommit en appelant la fonction autocommit() avec l'argument FALSE. Nous exécutons ensuite deux requêtes pour insérer et mettre à jour des données dans une table users. Nous validons la transaction en appelant la fonction commit() de l'objet MySQLi.

Nous réactivons ensuite l'autocommit en appelant la fonction autocommit() avec l'argument TRUE. Enfin, nous fermons la connexion MySQLi à l'aide de la méthode close() de l'objet MySQLi.

Utilisation avancée

La fonction mysqli_autocommit() fonctionne au niveau de la connexion. Lorsque vous passez l'autocommit de FALSE à TRUE, MySQLi valide automatiquement toute transaction en attente. Ce comportement est utile lors de la gestion de plusieurs transactions indépendantes séquentiellement dans le même script. Voici un exemple :

Utilisation avancée de PHP autocommit()

php
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

// Start and commit the first transaction
$mysqli->autocommit(FALSE);
$mysqli->query("INSERT INTO users (name, email) VALUES ('John', '[email protected]')");
$mysqli->commit();

// Start and commit the second transaction
$mysqli->autocommit(FALSE);
$mysqli->query("UPDATE users SET name='John Doe' WHERE id=1");
$mysqli->commit();

// Re-enable autocommit for subsequent queries
$mysqli->autocommit(TRUE);

$mysqli->close();
?>

Dans cet exemple, nous désactivons l'autocommit et exécutons une requête INSERT. Nous validons ensuite explicitement la première transaction. Ensuite, nous désactivons à nouveau l'autocommit pour démarrer une deuxième transaction, exécutons une requête UPDATE et la validons. Enfin, nous réactivons l'autocommit et fermons la connexion MySQLi.

Conclusion

En conclusion, la fonction mysqli_autocommit() est un outil puissant pour activer ou désactiver la fonctionnalité d'autocommit dans les transactions MySQLi en PHP. En comprenant comment utiliser la fonction et ses scénarios d'utilisation avancée, vous pouvez tirer parti de cette fonctionnalité pour créer des transactions MySQL puissantes et flexibles dans vos scripts PHP. N'oubliez pas de toujours valider ou annuler les transactions lorsque l'autocommit est désactivé afin de garantir l'intégrité et la cohérence des données dans votre base de données.

Pratique

Que fait le mode autocommit en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.