警告: mysql_xx
関数はphp 5.5以降で非推奨になり、php 7.0以降で削除されます(http://php.net/manual/intro.mysql.phpを参照)。mysqli_xx
関数を使用するか、@ Troelsknから以下の回答を参照してください
に対して複数の呼び出しを行うことができmysql_connect()
ますが、パラメーターが同じである場合は、 ' $new_link
'(4番目)のパラメーターにtrueを渡す必要があります。それ以外の場合は、同じ接続が再利用されます。例えば:
$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の場合、2番目を渡します。
mysql_query('select * from tablename', $dbh2);
リンク識別子を渡さない場合、最後に作成された接続が使用されます(この場合はで表される接続$dbh2
)。
mysql_query('select * from tablename');
別のオプション
MySQLユーザーが両方のデータベースにアクセスでき、それらが同じホスト上にある場合(つまり、両方のDBが同じ接続からアクセス可能)、次のことができます。
- 1つの接続を開いたままにして、
mysql_select_db()
必要に応じて交換を呼び出します。これがクリーンなソリューションであるかどうかはわかりませんが、間違ったデータベースにクエリを実行する可能性があります。
- クエリ内でテーブルを参照するときに、データベース名を指定します(例:)
SELECT * FROM database2.tablename
。これは、実装が面倒になる可能性があります。
古い拡張機能ではなくPDOを使用できる場合は、troelsknの回答も読んでください。