- 1
[Opened] jDao et les transactions
Posted by airlaza on 06/07/2011 05:34
Bonjour à tous,
J'aimerais gérer les transactions avec les Dao, est-ce possible? je ne trouve aucun exemple sur le net traitant le sujet. Est-ce correct de mettre les codes suivants :
$mon_record=jDao::createRecord('mon_selecteur_dao'); //je crée un record $mon_record->champ1=... .... $ma_connexion=jDb::getConnexion(); //je récupère la connexion en cours $ma_connexion->beginTransaction(); //j'initie la transaction $ma_dao=jDao::get('mon_selecteur_dao'); //je récupère la dao $ok=$ma_dao->insert($mon_record); //j'enregistre le record dans le dao if($ok) $ma_connexion->commit(); else $ma_connexion->rollback();
Je ne veux pas utiliser la fonction exec ou query avec $ma_connexion (afin d'éviter l'écriture des requetes SQL), autant profiter des fonctions de Dao.
Le but c'est de pouvoir récupérer le lastInsertId en cas de d'accès concurrents à la base de données.
J'utilise postgresql 8.4
Merci de votre conseil.
[Opened] jDao et les transactions
Posted by laurentj on 06/07/2011 13:09
Bonjour,
oui ça devrait fonctionner, jDao fait lui aussi un getConnexion, qui renvoit la même connection si elle est déjà ouverte.
[Opened] jDao et les transactions
Posted by airlaza on 06/07/2011 20:15
Merci.
je vais faire le test en réel et on verra la suite. Je considère que c'est résolu.
[Opened] jDao et les transactions
Posted by yebmetch on 05/20/2015 13:11
Salut à tous et merci cette discution m'a été très utile, un vrai soulagement. je voudrais juste notifier quelque chose dans le code donné plus haut. c'est plutôt
$ma_connexion=jDb::getConnection(); //je récupère la connexion en cours
Au lieu de
$ma_connexion=jDb::getConnexion(); //je récupère la connexion en cours
Encore merci.
- 1