警告: mysql_xx
関数はphp5.5以降廃止され、php 7.0以降削除されています( http://php.net/を参照) manual / intro.mysql.php
)、mysqli_xx
を使用します 機能するか、@Troelsknから以下の回答を参照してください
mysql_connect()
を複数回呼び出すことができます 、ただし、パラメータが同じ場合は、'$new_link
にtrueを渡す必要があります '(4番目の)パラメーター。それ以外の場合は、同じ接続が再利用されます。例:
$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の回答をお読みください。