W3docs

commit

Découvrez la fonction mysqli_commit() en PHP pour valider des transactions MySQL, avec des exemples et la gestion des erreurs.

Dans cet article, nous allons nous concentrer sur la fonction mysqli_commit() en PHP, qui est utilisée pour valider une transaction dans MySQL. Nous vous fournirons un aperçu de la fonction, de son fonctionnement et des exemples de son utilisation.

Introduction à la fonction mysqli_commit()

La fonction mysqli_commit() est une fonction procédurale intégrée en PHP qui valide la transaction courante pour une connexion à une base de données MySQL. Cela est utile lorsque vous avez besoin de sauvegarder définitivement les modifications apportées à une table de base de données, telles que des mises à jour ou des suppressions, au sein d'un bloc de transaction. Notez que l'équivalent orienté objet est la méthode $mysqli->commit().

Comment utiliser la fonction mysqli_commit()

L'utilisation de mysqli_commit() nécessite une connexion MySQLi valide et une transaction préalablement démarrée (généralement en désactivant l'autocommit). Voici un exemple procédural de base :

Utilisation de base de mysqli_commit()

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

// Disable autocommit to start a transaction
mysqli_autocommit($mysqli, false);

// execute queries using the connection

// Commit the transaction
$result = mysqli_commit($mysqli);
if ($result) {
    echo "Transaction committed successfully.";
} else {
    echo "Transaction commit failed: " . mysqli_error($mysqli);
}

mysqli_close($mysqli);
?>

Paramètres et valeur de retour :

  • $mysqli : La ressource de connexion MySQLi retournée par mysqli_connect().
  • $transaction (optionnel) : Une string spécifiant le nom de la transaction (pris en charge dans MySQL 8.0+).
  • Retourne : true en cas de succès, false en cas d'échec.

Utilisation avancée

La fonction mysqli_commit() peut gérer les noms de transactions et est souvent associée à la gestion des erreurs pour garantir l'intégrité des données. En cas d'échec d'un commit, il convient généralement d'annuler la transaction. Voici un exemple illustrant la gestion correcte des erreurs et le paramètre de transaction optionnel :

Utilisation avancée de mysqli_commit()

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

mysqli_autocommit($mysqli, false);

// execute queries using the connection

// Commit with an optional transaction name
$result = mysqli_commit($mysqli, "my_transaction");
if (!$result) {
    echo "Commit failed: " . mysqli_error($mysqli);
    // Roll back changes if commit fails
    mysqli_rollback($mysqli);
}

mysqli_close($mysqli);
?>

Dans cet exemple, nous désactivons l'autocommit, exécutons des requêtes et tentons de valider la transaction en utilisant un nom de transaction spécifique. Si mysqli_commit() retourne false, nous interceptons l'erreur et appelons mysqli_rollback() pour annuler les modifications, garantissant ainsi la cohérence de la base de données.

Conclusion

En conclusion, mysqli_commit() est une fonction procédurale fiable pour valider des transactions dans MySQL au sein de scripts PHP. En comprenant ses paramètres, ses valeurs de retour et la gestion adéquate des erreurs, vous pouvez gérer les modifications de base de données en toute sécurité. N'oubliez pas que l'équivalent orienté objet $mysqli->commit() se comporte de manière identique, mais est appelé en tant que méthode sur un objet MySQLi.

Pratique

Pratique
Que fait la fonction mysqli_commit en PHP ?
Que fait la fonction mysqli_commit en PHP ?
Was this page helpful?