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
        }