commit
En este artículo, nos centraremos en la función mysqli_commit() de PHP, la cual se utiliza para confirmar una transacción en MySQL. Le proporcionaremos una visión general de la función, su funcionamiento y ejemplos de su uso.
Introducción a la función mysqli_commit()
La función mysqli_commit() es una función procedural integrada en PHP que confirma la transacción actual para una conexión a una base de datos MySQL. Esto es útil cuando necesita guardar permanentemente los cambios realizados en una tabla de la base de datos, como actualizaciones o eliminaciones, dentro de un bloque de transacción. Tenga en cuenta que el equivalente orientado a objetos es el método $mysqli->commit().
Cómo utilizar la función mysqli_commit()
El uso de mysqli_commit() requiere una conexión MySQLi válida y una transacción que haya sido iniciada (típicamente deshabilitando el autocommit). A continuación se muestra un ejemplo procedural básico:
Uso básico 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);
?>Parámetros y valor de retorno:
$mysqli: El recurso de conexión MySQLi devuelto pormysqli_connect().$transaction(opcional): Una cadena que especifica el nombre de la transacción (compatible con MySQL 8.0+).- Devuelve:
trueen caso de éxito,falseen caso de error.
Uso avanzado
La función mysqli_commit() puede manejar nombres de transacción y suele combinarse con el manejo de errores para garantizar la integridad de los datos. Si una confirmación falla, normalmente debería revertir la transacción. A continuación se muestra un ejemplo que demuestra un manejo de errores adecuado y el parámetro de transacción opcional:
Uso avanzado 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);
?>En este ejemplo, deshabilitamos el autocommit, ejecutamos consultas e intentamos confirmar utilizando un nombre de transacción específico. Si mysqli_commit() devuelve false, capturamos el error y llamamos a mysqli_rollback() para revertir los cambios, garantizando la consistencia de la base de datos.
Conclusión
En conclusión, mysqli_commit() es una función procedural confiable para confirmar transacciones en MySQL dentro de scripts PHP. Al comprender sus parámetros, valores de retorno y el manejo adecuado de errores, puede gestionar los cambios en la base de datos de forma segura. Recuerde que el equivalente orientado a objetos $mysqli->commit() se comporta de manera idéntica, pero se invoca como un método en un objeto MySQLi.
Práctica
¿Qué hace la función mysqli_commit en PHP?