簡単な答え:はい 。
長い答え:
混乱を避け、クリーンで読みやすいコードを使用するために、コードで常に接続識別子を使用するようにする必要があります。 (特に、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は多くの面倒を回避し、後でそうすることを決定した場合に別のデータベースドライバーへの切り替えをはるかに簡単にします。すべてのデータベースドライバを抽象化し、それらすべてを同じ構文で処理するためのシンプルなインターフェイスを提供します。