oujood.com

Gestion des Transactions avec la Fonction autocommit() de mysqli en PHP

Découvrez comment utiliser la fonction mysqli autocommit() en PHP pour gérer automatiquement vos transactions MySQL. Apprenez les syntaxes, les modes de validation et les bonnes pratiques.

PHP Version: 5+

La fonction mysqli autocommit() en PHP

La fonction autocommit() est utilisée avec la classe mysqli en PHP pour contrôler le mode de validation automatique des transactions dans une base de données MySQL.

Définition

La fonction autocommit() permet de spécifier si les transactions doivent être validées automatiquement ou manuellement après chaque instruction SQL exécutée.

Syntaxes

Orientée objet :

$mysqli->autocommit($mode);

Procédurale :

mysqli_autocommit($link, $mode);

Valeurs possibles et paramètres

Le paramètre $mode peut être soit true pour activer la validation automatique, soit false pour désactiver la validation automatique.

Exemples pratiques

Orientée objet :

Exemple :       Copier le code

<?php
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_donnees");

// Activation de la validation automatique
$mysqli->autocommit(true);

// Vos opérations SQL ici

$mysqli->close();
?>

Procédurale :

Exemple :       Copier le code

<?php
$link = mysqli_connect("localhost", "utilisateur", "motdepasse", "ma_base_de_donnees");

// Désactivation de la validation automatique
mysqli_autocommit($link, false);

// Vos opérations SQL ici

mysqli_commit($link); // Validation manuelle des transactions
mysqli_close($link);
?>

Astuces et conseils d'utilisation

  • Il est recommandé de désactiver la validation automatique lors de l'exécution d'une série d'instructions SQL complexes, et de valider manuellement la transaction une fois que tout s'est déroulé correctement.
  • N'oubliez pas de valider manuellement la transaction en appelant mysqli_commit() après avoir désactivé la validation automatique.
  • En cas d'erreurs, assurez-vous de faire un rollback pour annuler les modifications non désirées.

Ainsi, la fonction autocommit() de la classe mysqli en PHP est un outil essentiel pour gérer le comportement de validation des transactions dans vos applications interactives avec des bases de données MySQL.

Exemples supplémentaires d'utilisation de la fonction mysqli autocommit()

voici quelques exemples supplémentaires d'utilisation de la fonction mysqli autocommit() en PHP :

Exemple 1: Validation Manuelle pour des Opérations Multiples

Exemple :       Copier le code

<?php
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_donnees");

// Désactiver la validation automatique
$mysqli->autocommit(false);

try {
    $mysqli->query("INSERT INTO clients (nom, email) VALUES ('John Doe', 'john@example.com')");
    $mysqli->query("UPDATE comptes SET solde = solde - 100 WHERE client_id = 1");

    // Valider manuellement la transaction
    $mysqli->commit();

    echo "Opérations réussies et transactions validées.";
} catch (Exception $e) {
    // En cas d'erreur, annuler la transaction
    $mysqli->rollback();
    echo "Une erreur s'est produite : " . $e->getMessage();
}

$mysqli->close();

Exemple 2: Validation Automatique pour une Opération Simple

Exemple :       Copier le code

<?php
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_donnees");

// Activer la validation automatique
$mysqli->autocommit(true);

$mysqli->query("INSERT INTO produits (nom, prix) VALUES ('Smartphone', 599.99)");

$mysqli->close();

?>

Exemple 3: Gestion des Erreurs avec Validation Manuelle

Exemple :       Copier le code

<?php
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_donnees");

// Désactiver la validation automatique
$mysqli->autocommit(false);

try {
    $mysqli->query("UPDATE stocks SET quantite = quantite - 10 WHERE produit_id = 1");

    // Simuler une erreur intentionnelle
    if (rand(0, 1)) {
        throw new Exception("Une erreur s'est produite.");
    }

    // Valider manuellement la transaction
    $mysqli->commit();

    echo "Opération réussie et transaction validée.";
} catch (Exception $e) {
    // En cas d'erreur, annuler la transaction
    $mysqli->rollback();
    echo "Une erreur s'est produite : " . $e->getMessage();
}

$mysqli->close();

?>



Voir aussi nos tutoriel :

Affecte un type à une variable">settype

 Affecte un type à une variable

Balise embed

Définit un conteneur pour une application externe (non HTML)

Espaces de noms XML

Espaces de noms XML