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

PHPで2つの異なるデータベースに接続しますか?

    簡単な答え:はい

    長い答え:
    混乱を避け、クリーンで読みやすいコードを使用するために、コードで常に接続識別子を使用するようにする必要があります。 (特に、ODBCやPDOなどの抽象化レイヤーを使用して両方のデータベースに接続する場合)

    PDOと接続管理に関するPHPマニュアル をご覧ください。

    例:

    $link_mysql = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    $link_msaccess = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\test.mdb");
    
    // query MySQL DB
    foreach($link_mysql->query('SELECT * FROM test') as $row) {
        print_r($row);
    }
    
    // query MS Access DB
    foreach($link_msaccess->query('SELECT * FROM omg_its_access') as $row) {
        print_r($row);
    }
    

    PDOを使用しない例:

    $link_mysql = mysql_connect("localhost", $user, $pass);
    mysql_select_db("test", $link_mysql);
    
    $link_msaccess = odbc_connect("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\test.mdb");
    
    // you may omit the link identifier for MySQL, but i suggest to use it explicitly 
    $res1 = mysql_query('SELECT * FROM test', $link_mysql);
    while ($row = mysql_fetch_row($res1)) {
        print_r($row);
    }
    // for ODBC the link identifier is mandatory
    $res2 = odbc_exec($link_msaccess, 'SELECT * FROM omg_its_access');
    while ($row = odbc_fetch_row($res2)) {
        print_r($row);
    }
    

    上記のように、2つのデータベースドライバーのコードは構文が異なります。そのため、PDOを使用することをお勧めします。

    PDOは多くの面倒を回避し、後でそうすることを決定した場合に別のデータベースドライバーへの切り替えをはるかに簡単にします。すべてのデータベースドライバを抽象化し、それらすべてを同じ構文で処理するためのシンプルなインターフェイスを提供します。



    1. 接続をoracle.jdbc.OracleConnectionにキャストできません

    2. MySQLで空でない値をカウントしてグループ化します

    3. 存在する値の間のMySQLの最初の空き番号

    4. 初心者のためのSQLLIKE演算子