> CopixDAORecordIterator > CopixClassesFactory > CHANGELOG_Copix3_B2 > Concurrence_d_acces > CopixActionReturn__PPO > CopixDAO_methode_check > CopixDAO_Surcharge_PHP > Gerer_les_transactions
fr

Objectifs

Lorsque vous devez lancer tout un tas de requêtes sans être sur que ces dernières arrivent à terme, il est souvent laborieux de gérer les transactions à la main, d'autant plus si vous utilisez plusieurs objets métiers, et encore plus si vous utilisez plusieurs connexions ou bases de données.

Copix propose ainsi une API unique et simple pour gérer dans une seule et même "transaction Copix" une multitude de requêtes et connexions, une multitude de bases, ou que se fassent les appels.

La solution en quelques lignes


CopixDB::begin ();
try {
   CopixDB::getConnection ()->doQuery ('....');
   CopixDB::getConnection ('autreConnexion')->doQuery ('....');
   $unObjet->faitDesChosesAvecDesBases ();
   CopixDB::commit ();
}catch (Exception $e){
   CopixDB::rollback ();
}
 

En gros, CopixDB::begin indique à l'API de base de données de mettre en place un contexte transactionnel à toutes les nouvelles demandes de connexions qui seront réalisées.

Les rollback et commit seront appliqués à toutes ces sources une fois l'opération terminée.

Copix est également capable de gérer des transactions imbriquées si votre base de données le permet.