Предупреждение: mysql_xx
функциите са отхвърлени от php 5.5 и са премахнати от php 7.0 (вижте http://php.net/ ръководство/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 има достъп до двете бази данни и те са на един и същ хост (т.е. и двете DB са достъпни от една и съща връзка), можете:
- Дръжте една връзка отворена и се обадете на
mysql_select_db()
да сменяте между, ако е необходимо. Не съм сигурен, че това е чисто решение и може в крайна сметка да потърсите грешна база данни. - Посочете името на базата данни, когато препращате към таблици във вашите заявки (напр.
SELECT * FROM database2.tablename
). Вероятно е трудно да се приложи.
Също така, моля, прочетете отговора на troelskn, защото това е по-добър подход, ако можете да използвате PDO вместо по-старите разширения.