sql >> Base de Datos >  >> RDS >> Mysql

¿Conectarse a dos bases de datos diferentes en PHP?

Respuesta corta: .

Respuesta larga:
Debe asegurarse de que su código siempre use identificadores de conexión para evitar confusiones y tener un código limpio y legible. (Especialmente cuando se conecta a ambas bases de datos utilizando una capa de abstracción como ODBC o PDO)

Consulte el Manual de PHP sobre PDO y administración de conexiones

Ejemplo:

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

Ejemplo sin DOP:

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

Como puede ver arriba, el código de los dos controladores de base de datos difiere en su sintaxis, por eso sugiero usar PDO.

PDO evitará muchas molestias y hará que cambiar a otro controlador de base de datos sea mucho más fácil si decide hacerlo más adelante. Abstrae todos los controladores de bases de datos y le brinda una interfaz simple para manejarlos todos con la misma sintaxis.