Transaction SQL avec Zend Framework

Logo Zend Framework

Nous allons voir un exemple de transaction SQL avec Zend Framework.

Une transaction SQL est utile lorsque vous voulez vous assurer que plusieurs requêtes se déroulent normalement.

Dans l’exemple ci-dessous, nous voulons enregistrer un utilisateur et son message.

On ne veut pas que l’utilisateur soit enregistré s’il y a un problème à l’insertion du message.

$tableUtilisateur = new Table_Utilisateur();
$tableCommentaire = new Table_Commentaire();

// démarre la transaction
$tableUtilisateur->getAdapter()->beginTransaction();

try {
    // execute les requêtes
    $idUtilisateur = $tableUtilisateur->save(array(
        'prenom' => 'John',
        'nom'    => 'Doe'
    ));
    $tableCommentaire->save(array(
        'idUtilisateur' => $idUtilisateur,
        'contenu'       => 'contenu du commentaire'
    ));

    // valide tous les changements
    $tableUtilisateur->getAdapter()->commit();
} catch (Exception $e) {
    // annule tous les changements si une erreur est levée
    $tableUtilisateur->getAdapter()->rollback();

    // affiche le message d'erreur
    die($e->getMessage());
}

De cette façon, nous nous assurons que : soit tout s’est bien déroulé, soit il y a une erreur et rien n’est enregistré.

Share Button

Laisser un commentaire.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.