Introduction
CopixDB est la couche d'accès aux données de Copix.
Les profils de connexions sont déclarés via l'interface dédiée à cet effet dans le module d'administration des connexions.
Requêtes simples
$ctProfilParDefaut = CopixDB::getConnection ();
$arResultats = $ctProfilParDefaut->doQuery ('select * from test');
$arResultats contient la liste des enregistrements trouvés
$ctProfilParDefaut = CopixDB::getConnection ();
$cptAffectedRows = $ctProfilParDefaut->doQuery ('delete from test');
$cptAffectedRows contient le nombre d'enregistrements affectés par la requête
Requêtes paramétrées
$ctProfilParDefaut = CopixDB::getConnection ();
$arResultats = $ctProfilParDefaut->doQuery ('select * from test where something = :someValue', array (':someValue'=>$someValue));
$arResultats contient la liste des enregistrements trouvés. $someValue est la valeur non traitée de ce que l'on souhaite mettre dans le champ en question (sans quote pour les chaines par exemple)
$ctProfilParDefaut = CopixDB::getConnection ();
$cptAffectedRows = $ctProfilParDefaut->doQuery ('delete from test where ID = :id', array (':id'=>$id));
$cptAffectedRows contient le nombre d'enregistrements affectés par la requête $id est la valeure non traitée de ce que l'on souhaite contrôler comme valeur
Requêtes dans un contexte transactionnel
CopixDB::begin ();
try {
$ct = CopixDB::getConnection ('mysql');
$ct2 = CopixDB::getConnection ('oracle');
$ct->doQuery ('divers')
$ct2->doQuery ('divers');
CopixDB::commit ();
}catch (Exception $e){
//Les DEUX sources de données sont rollbackées.
CopixDB::rollBack ();
}
Note sur les transactions : Pour des raisons techniques, les connexions persistantes ne pourront accueillir plus d'une transaction simultanée. De ce fait, si une nouvelle transaction est demandée alors qu'une transaction est déjà en cours dans une connexion persistante, une nouvelle connexion (non persistante) sera demandée au serveur.
Copix propose un mode de gestion transparent pour vos transactions via CopixServices.
CopixDBException
Toutes les manipulations de base de données retournent des CopixDBException en cas d'échec.
Ecriture plus rapide
Il existe une fonction raccourcis pour la syntaxe CopixDB::getConnection ()->doQuery () qui est _doQuery ().
Exemple

