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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
Partager