Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verbinden Sie sich mit zwei verschiedenen Datenbanken in PHP?

Kurze Antwort:Ja .

Lange Antwort:
Sie sollten sicherstellen, dass Ihr Code immer Verbindungskennungen verwendet, um Verwechslungen zu vermeiden und sauberen, lesbaren Code zu haben. (Vor allem, wenn Sie sich mit beiden Datenbanken über eine Abstraktionsschicht wie ODBC oder PDO verbinden)

Bitte schauen Sie in das PHP Manual on PDO and connection management

Beispiel:

$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);
}

Beispiel ohne 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);
}

Wie Sie oben sehen, unterscheidet sich der Code für die beiden Datenbanktreiber in seiner Syntax - deshalb empfehle ich die Verwendung von PDO.

PDO erspart viel Ärger und macht den Wechsel zu einem anderen Datenbanktreiber viel einfacher, wenn Sie sich später dazu entschließen. Es abstrahiert alle Datenbanktreiber und gibt Ihnen eine einfache Schnittstelle, um sie alle mit der gleichen Syntax zu handhaben.