db2_rollback

(no version information, might be only in CVS)

db2_rollback --  Annule une transaction

Description

bool db2_rollback ( resource connection )

Annule une transaction en cours sur la connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Note : Si la ressource de connexion spécifiée est persistante, toutes les transactions en cours pour toutes les applications qui utilisent cette connexion persistante seront validées. Pour cette raison, les connexions persistantes ne sont pas recommandées pour les applications qui nécessitent des transactions.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Annulation d'une requête DELETE

Dans l'exemple suivant, nous comptons le nombre de ligne dans la table, désactivons le mode AUTOCOMMIT sur la connexion de la base de données, supprimons toutes les lignes dans la table et retournons le nombre 0 pour prouver que les lignes ont bien été supprimées. Ensuite nous utilisons la fonction db2_rollback() et retournons la nouvelle valeur du nombre de ligne dans la table pour montrer que le nombre est le même que celui que nous avions avant d'effectuer la requête DELETE. Le retour à l'état original de la table démontre que l'annulation de la transaction a réussie.

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

if (
$conn) {
    
$stmt = db2_exec($conn, "SELECT count(*) FROM animaux");
    
$res = db2_fetch_array( $stmt );
    echo
$res[0] . "\n";
    
    
// Désactive AUTOCOMMIT
    
db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);
   
    
// Suppression de toutes les lignes de ANIMAUX
    
db2_exec($conn, "DELETE FROM animals");
    
    
$stmt = db2_exec($conn, "SELECT count(*) FROM animaux");
    
$res = db2_fetch_array( $stmt );
    echo
$res[0] . "\n";
    
    
// Annule la requête DELETE
    
db2_rollback( $conn );
    
    
$stmt = db2_exec( $conn, "SELECT count(*) FROM animaux" );
    
$res = db2_fetch_array( $stmt );
    echo
$res[0] . "\n";
    
db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

7
0
7

Voir aussi

db2_autocommit()
db2_commit()

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:46