Aller au contenu

commit

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

Introduction à la fonction mysqli_commit()

La fonction mysqli_commit() est une fonction procédurale intégrée à PHP qui valide la transaction en cours pour une connexion à une base de données MySQL. Cela est utile lorsque vous devez enregistrer 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 qui a été 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
<?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 chaîne de caractères 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 des noms de transaction et est souvent associée à une gestion des erreurs pour garantir l'intégrité des données. Si une validation échoue, vous devriez généralement annuler la transaction. Voici un exemple démontrant une gestion des erreurs appropriée et le paramètre de transaction optionnel :

Utilisation avancée de mysqli_commit()

php
<?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 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 sa gestion appropriée des erreurs, vous pouvez gérer en toute sécurité les modifications de la base de données. 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

Que fait la fonction mysqli_commit en PHP ?

Trouvez-vous cela utile?

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