ConFoo 2025

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback Cancelar una transacción

Descripción

db2_rollback(resource $connection): bool

Cancela una transacción en progreso en el recurso de conexión especificado y comienza una nueva transacción. Comunmente las aplicaciones de PHP confirman las transacciones de manera automática por lo que la función db2_rollback() no tendría efecto a menos que este modo haya sido desactivado para este recurso.

Parámetros

connection

Un recurso de conexión válido devuelto por db2_connect() o db2_pconnect().

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Cancelando una sentencia DELETE

En el siguiente ejemplo se cuenta el número de filas en una tabla, se cancelan las confirmaciones automáticas en la conexión, se eliminan todas las filas de la tabla y devuelve el total de 0 para confirmar que las filas se han borrado. Cuando se llama a db2_rollback() y se devuelve el total actualizado de filas en la tabla para demostrar que el número es igual al original (antes de ejecutar la sentancia DELETE). Esto demuestra que la cancelación de la transacción fue correcto.

<?php
$conn
= db2_connect($database, $user, $password);

if (
$conn) {
$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo
$res[0] . "\n";

// Turn AUTOCOMMIT off
db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

// Delete all rows from ANIMALS
db2_exec($conn, "DELETE FROM animals");

$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo
$res[0] . "\n";

// Roll back the DELETE statement
db2_rollback( $conn );

$stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
$res = db2_fetch_array( $stmt );
echo
$res[0] . "\n";
db2_close($conn);
}
?>

El resultado del ejemplo sería:

7
0
7

Ver también

  • db2_autocommit() - Devuelve o establece el estado de AUTOCOMMIT en una conexión de bases de datos
  • db2_commit() - Confirmar una transacción

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top