Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-01-2009 09:20:07

romain
Membre
Date d'inscription: 20-01-2009
Messages: 18

[Résolu][Connection sur 2 Bases]

Bonjour all

Voila mon cas:

J'aimerai pouvoir faire 2 requêtes sur 2 bases (j'ai une base en france et une base en belgique).
J'ai reussi à faire une requete sur la base fr et de stocker son resultat dans mon select .

Mais maintenant je galère pas mal a geré cette double connection :(.

Quelqu'un aurai des infos la dessu ?

Merci.
Romain

Dernière modification par romain (23-01-2009 12:50:43)

Hors ligne

 

#2 23-01-2009 09:52:10

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Connection sur 2 Bases]

Bonjour,

Il faut créer les différentes connexions, ensuite si besoin en déclarer une par défaut à Zend_Db_Table qui l'utilisera automatiquement lors des requêtes.

Pour les autres, l'idéal est de les stocker dans le registre avec un nom pertinent et de passer ce nom dans le paramètre 'db' du tableau d'options lors des requêtes sur les tables concernées. Il ira chercher tout seul comme un grand l'adapter db dans la clé concernée du registre.

Tout est bien expliqué dans la doc :
http://framework.zend.com/manual/fr/zen … ng.adapter


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 23-01-2009 09:58:20

romain
Membre
Date d'inscription: 20-01-2009
Messages: 18

Re: [Résolu][Connection sur 2 Bases]

Je vais regardé ca .

Merci.
Romain.

Hors ligne

 

#4 23-01-2009 12:49:27

romain
Membre
Date d'inscription: 20-01-2009
Messages: 18

Re: [Résolu][Connection sur 2 Bases]

voila c'est fait ! smile

je post ma conf et un exemple pour ceux qui aurais les mêmes problemes

app.ini

Code:

[development : production]
database.adapter = "oracle"
database.params.host = "192.168.xxx.xxx"
database.params.username = "xxx"
database.params.password = "xxx"
database.params.dbname = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx) (PORT = 1521)))(CONNECT_DATA =(SID = xxx)))"
database.params.options.caseFolding  = 2
database.params.options.autoQuoteIdentifiers = 0

database2.adapter = "oracle"
database2.params.host = "192.168.xxx.xxx"
database2.params.username = "xxx"
database2.params.password = "xxx"
database2.params.dbname = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx) (PORT = 1521)))(CONNECT_DATA =(SID = xxx)))"
database2.params.options.caseFolding  = 2
database2.params.options.autoQuoteIdentifiers = 0

bootsrap.php

Code:

$dbAdapter = Zend_Db::factory($configuration->database);
$dbAdapter2 = Zend_Db::factory($configuration->database2);
$registry->dbAdapter     = $dbAdapter;
$registry->dbAdapter2     = $dbAdapter2;

et model_sdg

Code:

class Model_Sdg
{
    public function recherche()
    {
        //prefix de la requête commune au 2 base 
        $qry = "select ................"
        
        //end of query fr 
        $qry1 = $qry."and b.actid not in (2,59717,20) ";
        //end of query be
        $qry2 = $qry."and b.actid not in (1,2, 28927) ";
        
        $db = Zend_Registry::get("dbAdapter");
        $db2 = Zend_Registry::get("dbAdapter2");
        
        //execution et récuperation des données de la base FR
        $select = $db->query($qry1);
        $rows = $select->fetchAll();
        
        //execution et récuperation des données de la base BE
        $select2 = $db2->query($qry2);
        $rows2 = $select2->fetchAll();
   
        //on concatene le tableau de valeur 1 $rows avec le tableau de valeur 2 $rows2
        $rows2[sizeof($rows2)] = $rows[0];
        
        //retour de rows2
        return $rows2;
    }
}

voila si ce code peux être utlie à des gens tand mieux smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages