Joomla.it Forum
Non solo Joomla... => Sviluppo => : Cybassh 23 Jun 2010, 09:36:36
-
Salve a tutti,
sto cercando di implementare un componente che lavori su due o piu' Db, possibilmente utilizzando le classi che mette a disposizione Joomla! °Fintanto che utilizzo il db "locale"(quello dell'istanza di joomla) . il problema sorge quando voglio accedere ad un db esterno. come posso fare? che classi ho a disposizione e come posso fare? ci sono dei componenti utili in tal senso?
grazie
-
... se cerchi sul forum c'è, cerca bridge
M.
-
ok.
chiedo scusa...ho visto che ho sbagliato sezione (era meglio database)
grazie
-
se vuoi usare le classi di joomla devi istanziare JDatabase o una delle classi derivate) e poi procedere da lì.
vedi docs.joomla.org/JDatabase
ciao,
marco
-
la guida l'avevo letta, e c'è tratta il crud dell'istanza JDatabase. ma non son riuscito a trovare il modo per istanziare un altro oggetto JDatabase o JDatabaseMySQL ed inserirlo nella sessione dell'istanza Joomla
-
Mi spiego meglio:
con $db =& JFactory::getDBO();
prendo l'istanza db che punta a quella di Joomla(il db "interno" di J!)
poi con $options = array(
'driver' => 'mysql',
'host' => 'hostxx',
'user' => 'utonto',
'password' => '???',
'database' => 'zzz',
'prefix'=> 'seserve_'
);
$db2 =& JDatabase::getInstance( $options );
faccio un'altra connessione.
pero' rimane in sessione o devo richiamarla ognivolta che mi serve una connessione al db zzz?
-
non mi sono mai posto il problema, ma molto dipende molto da che vuoi fare e come/dove vuoi usare la nuova istanza.
se devi inserirla nella sessione penso tu debba lavorare non poco sul core: modificare l'inizializzazione di joomla e la jFactory. mi viene però un dubbio: buona parte di queste classi sono disegnate per lavorare come singleton, quindi non so quanto possano gradire che vengano loro cambiati i parametri nel mezzo dell'uso
ciao,
marco
==
avevo già scritto prima del tuo post, ma mi pare valga lo stesso.
-
ho trovato questa miniguida http://docs.joomla.org/How_to_connect_to_an_external_database e ora provo subito ;)
Grazie