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.