Saltar al contenido

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
<?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 por mysqli_connect().
  • $transaction (opcional): Una cadena que especifica el nombre de la transacción (compatible con MySQL 8.0+).
  • Devuelve: true en caso de éxito, false en 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
<?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?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.