Ostrzeżenie: mysql_xx funkcje są przestarzałe od php 5.5 i usunięte od php 7.0 (patrz https://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ń.