Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć się z wieloma bazami danych MySQL na jednej stronie internetowej?

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ń.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić błędy nieprawidłowej wartości ciągu?

  2. Utwórz tunel SSH dla zdalnego dostępu do MySQL

  3. Czy mogę wykonać wiele zapytań oddzielonych średnikami za pomocą MySQL Connector/J?

  4. Jak połączyć się z MySQL na Amazon EC2 z poziomu Windows?

  5. Pobierz TOP 10 rzędów bez użycia TOP lub LIMIT? – Wywiad Pytanie tygodnia #247