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 parmysqli_connect().$transaction(optionnel) : Une string spécifiant le nom de la transaction (pris en charge dans MySQL 8.0+).- Retourne :
trueen cas de succès,falseen 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.