Ostrzeżenie: mysql_xx
funkcje są przestarzałe od php 5.5 i usunięte od php 7.0 (patrz http://php.net/ instrukcja/intro.mysql.php
), użyj mysqli_xx
funkcje lub zobacz odpowiedź poniżej z @Troelskn
Możesz wykonać wiele wywołań do mysql_connect()
, ale jeśli parametry są takie same, musisz przekazać true dla „$new_link
' (czwarty) parametr, 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, aby odpytać bazę danych 1, przekaż pierwszy identyfikator łącza:
mysql_query('select * from tablename', $dbh1);
a dla bazy danych 2 podaj drugi:
mysql_query('select * from tablename', $dbh2);
Jeśli nie podasz identyfikatora łącza, używane jest ostatnie utworzone połączenie (w tym przypadku to 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 (tj. obie bazy danych są dostępne z tego samego połączenia), możesz:
- Utrzymuj jedno połączenie otwarte i wywołaj
mysql_select_db()
przełączać się między nimi w razie potrzeby. Nie jestem pewien, czy jest to czyste rozwiązanie i możesz skończyć z zapytaniem o niewłaściwą bazę danych. - Określ nazwę bazy danych, gdy odwołujesz się do tabel w zapytaniach (np.
SELECT * FROM database2.tablename
). Prawdopodobnie będzie to trudne do wdrożenia.
Przeczytaj również odpowiedź troelskn, ponieważ jest to lepsze podejście, jeśli możesz używać PDO zamiast starszych rozszerzeń.