db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback Annule une transaction

Description

function db2_rollback(resource $connection): bool

Annule une transaction en cours sur la ressource de connexion spécifiée et commence une nouvelle transaction. Les applications PHP utilisent normalement le mode AUTOCOMMIT par défaut, donc db2_rollback() n'a normalement aucun effet tant que AUTOCOMMIT n'a pas été désactivé pour la ressource de connexion.

Liste de paramètres

connection
Une variable ressource de connexion à la base de données valide retournée par db2_connect() ou db2_pconnect().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Annulation d'une instruction DELETE

Dans l'exemple suivant, le nombre de lignes dans une table est compté, le mode AUTOCOMMIT est désactivé sur une connexion de base de données, toutes les lignes de la table sont supprimées et le compteur retourne 0 pour prouver que les lignes ont bien été supprimées. Ensuite, db2_rollback() est invoquée, et le nombre de lignes mis à jour dans la table est retourné pour montrer que le nombre est le même qu'avant l'exécution de l'instruction DELETE. Le retour à l'état original de la table démontre que l'annulation de la transaction a réussi.

<?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";

// Désactive AUTOCOMMIT
db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

// Supprime toutes les lignes de ANIMALS
db2_exec($conn, "DELETE FROM animals");

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

// Annule l'instruction DELETE
db2_rollback( $conn );

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

L'exemple ci-dessus va afficher :

7
0
7

Voir aussi