Попередження: mysql_xx функції застаріли з php 5.5 та видаляються з php 7.0 (див. Http://php.net/manual/intro.mysql.php ), використовуйте mysqli_xxфункції або дивіться відповідь нижче від @Troelskn
Ви можете робити кілька дзвінків mysql_connect(), але якщо параметри однакові, вам потрібно передати істину для параметра ' $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, а не старі розширення.