Avviso : mysql_xx
le funzioni sono deprecate da php 5.5 e rimosse da php 7.0 (vedi http://php.net/ manual/intro.mysql.php
), usa mysqli_xx
funzioni o vedere la risposta di seguito da @Troelskn
Puoi effettuare più chiamate a mysql_connect()
, ma se i parametri sono gli stessi devi passare true per '$new_link
' (quarto) parametro, altrimenti viene riutilizzata la stessa connessione. Ad esempio:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Quindi per interrogare il database 1 passare il primo identificatore di collegamento:
mysql_query('select * from tablename', $dbh1);
e per il database 2 passare il secondo:
mysql_query('select * from tablename', $dbh2);
Se non si passa un identificatore di collegamento viene utilizzata l'ultima connessione creata (in questo caso quella rappresentata da $dbh2
) es.:
mysql_query('select * from tablename');
Altre opzioni
Se l'utente MySQL ha accesso a entrambi i database e si trovano sullo stesso host (ovvero entrambi i DB sono accessibili dalla stessa connessione), potresti:
- Mantieni aperta una connessione e chiama
mysql_select_db()
scambiare tra se necessario. Non sono sicuro che questa sia una soluzione pulita e potresti finire per interrogare il database sbagliato. - Specifica il nome del database quando fai riferimento alle tabelle all'interno delle tue query (ad es.
SELECT * FROM database2.tablename
). È probabile che sia difficile da implementare.
Inoltre, leggi la risposta di troelskn perché è un approccio migliore se sei in grado di utilizzare PDO anziché le estensioni precedenti.