Предупреждение: mysql_xx
функции устарели начиная с php 5.5 и удалены начиная с php 7.0 (см. Http://php.net/manual/intro.mysql.php ), используйте mysqli_xx
функции или посмотрите ответ ниже от @Troelskn
Вы можете сделать несколько вызовов mysql_connect()
, но если параметры одинаковы, вам нужно передать true для параметра ' $new_link
' (четвертый), в противном случае одно и то же соединение используется повторно. Например:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Затем для запроса базы данных 1 передайте первый идентификатор ссылки:
mysql_query('select * from tablename', $dbh1);
и для базы данных 2 передать второе:
mysql_query('select * from tablename', $dbh2);
Если вы не передаете идентификатор ссылки, то используется последнее созданное соединение (в данном случае это представлено $dbh2
), например:
mysql_query('select * from tablename');
Другие варианты
Если пользователь MySQL имеет доступ к обеим базам данных, и они находятся на одном и том же хосте (то есть обе базы данных доступны через одно и то же соединение), вы можете:
- Держите одно соединение открытым и при необходимости звоните
mysql_select_db()
для обмена. Я не уверен, что это чистое решение, и вы могли бы в конечном итоге запросить неправильную базу данных.
- Укажите имя базы данных, когда вы ссылаетесь на таблицы в своих запросах (например
SELECT * FROM database2.tablename
). Это, вероятно, будет проблемой для реализации.
Также, пожалуйста, прочитайте ответ troelskn, потому что это лучший подход, если вы можете использовать PDO, а не старые расширения.