Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để bạn kết nối với nhiều cơ sở dữ liệu MySQL trên một trang web?

Cảnh báo: mysql_xx các hàm không được dùng nữa kể từ php 5.5 và bị xóa kể từ php 7.0 (xem http://php.net/ manual / intro.mysql.php ), sử dụng mysqli_xx hoặc xem câu trả lời bên dưới từ @Troelskn

Bạn có thể thực hiện nhiều cuộc gọi đến mysql_connect() , nhưng nếu các tham số giống nhau, bạn cần chuyển true cho '$new_link tham số '(thứ tư), nếu không thì sử dụng lại cùng một kết nối. Ví dụ:

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);

Sau đó, để truy vấn cơ sở dữ liệu 1, hãy chuyển mã định danh liên kết đầu tiên:

mysql_query('select * from tablename', $dbh1);

và đối với cơ sở dữ liệu 2, hãy vượt qua bước thứ hai:

mysql_query('select * from tablename', $dbh2);

Nếu bạn không chuyển mã nhận dạng liên kết thì kết nối cuối cùng được tạo sẽ được sử dụng (trong trường hợp này là kết nối được đại diện bởi $dbh2 ) ví dụ:

mysql_query('select * from tablename');

Các tùy chọn khác

Nếu người dùng MySQL có quyền truy cập vào cả hai cơ sở dữ liệu và họ ở trên cùng một máy chủ (tức là cả hai DB đều có thể truy cập từ cùng một kết nối), bạn có thể:

  • Giữ một kết nối mở và gọi mysql_select_db() để hoán đổi giữa những thứ cần thiết. Tôi không chắc đây là một giải pháp sạch và bạn có thể truy vấn sai cơ sở dữ liệu.
  • Chỉ định tên cơ sở dữ liệu khi bạn tham chiếu các bảng trong truy vấn của mình (ví dụ:SELECT * FROM database2.tablename ). Đây có thể là một khó khăn khi thực hiện.

Ngoài ra, vui lòng đọc câu trả lời của troelskn vì đó là cách tiếp cận tốt hơn nếu bạn có thể sử dụng PDO thay vì các tiện ích mở rộng cũ hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sao chép bảng trong MySQL

  2. Làm cách nào để lấy tất cả các giá trị trong một cột bằng PHP?

  3. Cách tốt nhất để xóa các hàng cũ khỏi MySQL trên cơ sở luân phiên là gì?

  4. Xác định Xếp hạng dựa trên Nhiều Cột trong MySQL

  5. Mac OS X - EnvironmentError:không tìm thấy mysql_config