Joomla è un CMS molto potente, versatile e webmaster-friendly.
Capita però a volte di imbattersi in situazioni spiacevoli…
Un bel giorno dopo aver scritto del codice in php che interrogava il database (codice richiamato con il plugin Jumi), mi è comparso questo messaggio tanto generico quanto terribile
“Error loading Modules“
Messaggio generico perchè non spiega assolutamente la fonte del problema, terribile perchè si perdono ore o peggio giorni interi per capire cosa sia successo.
Jumi è un plugin molto interessante che permette di incluedere del codice all’interno di un modulo o di un qualunque articolo.
Comodissimo, io lo uso in joomla per piccole query su database senza dover scrivere componenti o moduli.
Dove sta il problema quindi di questo messaggio “Error loading Modules“ ?
Mysql si comporta in modo “strano“: se si aprono 100 connessioni a 100 diversi database sullo stesso server, MySql utilizza lo stesso id di connessione per ognuna di esse!
Quindi se fate qualcosa del tipo:
$db1 = mysql_connect($host, $user, $pass);
$db2 = mysql_connect($host, $user, $pass);
mysql_select_db(’db1′, $db1);
mysql_select_db(’db2′, $db2);
avrete una situazione chiamata race condition: solamente db2 viene selezionato.
Ecco spiegato perchè i moduli non vengono visualizzati!
Come risolvere il problema dell’errore nel caricamento dei moduli?
La mia soluzione al problema delle connessioni multiple è questa:
$host1 = “localhost”;
$host2 = “127.0.0.1″;
$host3 = “127.0.0.1:3306″;
$host4 = “localhost:3306″;
$db1 = mysql_connect($host1, $user, $pass);
$db2 = mysql_connect($host2, $user, $pass);
$db3 = mysql_connect($host3, $user, $pass);
$db4 = mysql_connect($host4, $user, $pass);
Spero che questa soluzione vi risparmi un bel po’ di tempo!
Grazie tante. Mi hai risolto un problema che mi ha fatto perdere un paio di ore senza capire il problema. Avevo capito a quale riga si bloccasse il tutto ma non perchè.
Grazie anche da parte mia ;) Anch’io ci stavo perdendo un bel po’ di tempo su questo problema e la soluzione proposta funziona perfettamente.
Grazie tante…
questa è la soluzione a COME INTEGRARE FILE ESTERNI PHP IN ARTICOLI JOOMLA….spero che google lo indicizzi a dovere..
;-)
Ciao Ragazzi,
io ho creato una pagina singola in joomla quindi non ho connessioni multiple a database, la sintassi che uso è questa?
$host1 = “indirizzo”;
$user=”username”;
$pass=”password”;
$db=”nomedb”;
$db1 = mysql_connect($host1, $user, $pass);
#$connessione=mysql_connect($name_server,$nome_utente,$password);
$database=mysql_select_db($db,$db1);
$sql=”select TABELLA.* from TABELLA”;
$tutto=mysql_query($sql,$database);
Stai comunque aprendo un’altra connessione rispetto a quella mantenuta aperta da Joomla, in questo senso si tratta sempre di connessioni multiple.