Ostrzeżenie: mysql_xx
funkcje są przestarzałe od wersji php 5.5 i usunięte od wersji php 7.0 (patrz http://php.net/manual/intro.mysql.php ), użyj mysqli_xx
funkcji lub zobacz odpowiedź poniżej z @Troelskn
Możesz wykonać wiele wywołań mysql_connect()
, ale jeśli parametry są takie same, musisz przekazać wartość true dla parametru „ $new_link
” (czwarty), w przeciwnym razie to samo połączenie zostanie ponownie użyte. Na przykład:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Następnie do zapytania bazy danych 1 przekaż pierwszy identyfikator linku:
mysql_query('select * from tablename', $dbh1);
a dla bazy danych 2 przekaż drugi:
mysql_query('select * from tablename', $dbh2);
Jeśli nie podasz identyfikatora łącza, zostanie użyte ostatnie utworzone połączenie (w tym przypadku reprezentowane przez $dbh2
), np .:
mysql_query('select * from tablename');
Inne opcje
Jeśli użytkownik MySQL ma dostęp do obu baz danych i znajdują się na tym samym hoście (tzn. Oba DB są dostępne z tego samego połączenia), możesz:
- Pozostaw jedno połączenie otwarte i zadzwoń,
mysql_select_db()
aby przełączać się między nimi w razie potrzeby. Nie jestem pewien, czy jest to czyste rozwiązanie i możesz w końcu zapytać o niewłaściwą bazę danych.
- Podaj nazwę bazy danych, odwołując się do tabel w zapytaniach (np
SELECT * FROM database2.tablename
.). Może to być trudny do wdrożenia.
Przeczytaj również odpowiedź troelskn, ponieważ jest to lepsze podejście, jeśli możesz używać PDO zamiast starszych rozszerzeń.