PDO::rollBack — Annuler une transaction (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::rollBack ( void )
Annulez la transaction en cours initiée par PDO::beginTransaction(). Si aucune transaction n'est active, une PDOException sera levée.
Si la base de données est définie en mode de validation automatique, cette fonction (méthode) restaurera le mode de validation automatique après avoir annulé la transaction.
Certaines bases de données, notamment MySQL, provoquent automatiquement une validation implicite lorsqu'il existe des instructions DLL telles que la suppression ou la création d'une table de données dans une transaction. Une validation implicite ne permettra pas d'annuler les modifications dans le cadre de cette transaction.
Renvoie VRAI en cas de succès ou FAUX en cas d'échec.
L'exemple suivant démarre une transaction et émet deux instructions qui modifient la base de données avant d'annuler les modifications. Mais dans MySQL, l'instruction DROP TABLE valide automatiquement la transaction, donc toute modification apportée à cette transaction ne sera pas annulée.
<?php/* Démarrer une transaction et désactiver la validation automatique*/$dbh->beginTransaction();/* Modifier le schéma et les données de la base de données*/$sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'");/* Reconnaître les erreurs et annuler les modifications*/$dbh->rollBack();/* À ce stade, la connexion à la base de données revient en mode de validation automatique*/?>