db2_rollback
(PECL ibm_db2 >= 1.0.0)
db2_rollback — Annule une transaction
Description
$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.
Liste de paramètres
-
connection
-
Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().
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() - Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données
- db2_commit() - Valide la transaction
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-db2-rollback.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.