transaction : faire un return si rollback
Bonjour,
utiliser une transaction sert à ne modifier la bdd que si l'ensemble des requêtes se déroule bien. OK. Par contre, la fonction (ou méthode) qui effectue la transaction a une valeur de retour qui est utilisée par le code qui l'appelle. Je me dis donc que si on fait un rollback, il faut mettre return NULL; dedans. Est-ce exact ?
Voici un exemple de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| try
{
$ppp = new PDOPlusPlus(); //super classe de rawsrc (enrobage de pdo)
$ppp->startTransaction();
if ( $id == 0 )
{
$sql = <<<sql
INSERT INTO US_user (US_firstname ,US_lastname,US_sesa)
VALUES(
{$ppp($firstname,'str')},
{$ppp($lastname, 'str')},
{$ppp($sesa, 'str')}
) ;
sql;
$id = $ppp->insert($sql);
return $id;
$ppp->commit();
}
}
catch (\Exception $e) {
$ppp->rollback();
return NULL; //pour que le code appelant comprenne que la bdd n'a pas été modifiée
} |