sql >> データベース >  >> RDS >> Mysql

1つのWebページで複数のMySQLデータベースにどのように接続しますか?

    警告: 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の回答をお読みください。



    1. Oracleデータベースのテーブル名変更列を変更します

    2. ウェブサイトデータベースを最適化する方法

    3. Oracleでのページネーションのベストプラクティスは?

    4. MySQLでBLOBからTEXTに変換するにはどうすればよいですか?