it-swarm-eu.dev

Posso caricare i dati dal database Joomla e dal database esterno?

È possibile unire 2 database contemporaneamente in una singola query? Ad esempio: voglio vedere quanti utenti ho sul mio server e quanti utenti ho su un server esterno, il tutto in una singola query SQL.

Ho testato l'uso di union e JDatabase: http://docs.joomla.org/Using_the_union_methods_in_database_querieshttp://docs.joomla.org/How_to_connect_to_an_external_database

Il mio codice:

 // Crea un nuovo oggetto query. 
 $ Db1 = ExternalDataBase :: getDbo (); 
 $ Db = JFactory :: getDBO (); 
 
 $ query1 = $ db1-> getQuery (true); 
 $ query1 
 -> seleziona ('COUNT (id) AS numero_utente') 
 -> da (' #__ users '); 
 
 $ query = $ db-> getQuery (true); 
 $ query 
 -> seleziona (' COUNT (id) AS users_number ') 
 -> from (' #__ users ') 
 -> union ($ query1); 
 
 $ usersNumber = $ db-> setQuery ($ query ) -> loadObjectList (); [. .____]

La seconda query dovrebbe selezionare l'utente dal database esterno non funziona.

Qualcuno ha idea di come risolvere questo problema, grazie.

1
Jordi

L'oggetto query viene creato da una connessione al database. Non può gestire due database connessi in una singola query.

Per risolvere il requisito, è meglio abilitare l'accesso a livello di MySQL. Se i due database sono locali, puoi semplicemente un firma le autorizzazioni per accedere al secondo database al tuo utente del database. In questo modo, la query multi-database viene risolta in modo efficiente dal server MySQL.

2
Anibal