Attenzione: le mysql_xx funzioni sono deprecate da php 5.5 e rimosse da php 7.0 (vedi http://php.net/manual/intro.mysql.php ), utilizzare le mysqli_xxfunzioni o vedere la risposta di seguito da @Troelskn
È possibile effettuare più chiamate a mysql_connect(), ma se i parametri sono gli stessi è necessario passare true per il $new_linkparametro ' ' (quarto), altrimenti viene riutilizzata la stessa connessione. Per 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) ad 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) è possibile:
- Tieni aperta una connessione e chiama
mysql_select_db()per scambiarla, se necessario. Non sono sicuro che questa sia una soluzione pulita e potresti finire per interrogare il database sbagliato.
- Specificare il nome del database quando si fa riferimento alle tabelle all'interno delle query (ad es
SELECT * FROM database2.tablename.). Questo è probabilmente un dolore da implementare.
Leggi anche la risposta di troelskn perché è un approccio migliore se sei in grado di utilizzare DOP piuttosto che le estensioni precedenti.