Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Conectar-se a dois bancos de dados diferentes em PHP?


Resposta curta:Sim .

Resposta longa:
Você deve garantir que seu código sempre use identificadores de conexão para evitar confusão e ter um código limpo e legível. (Especialmente quando você se conecta a ambos os bancos de dados usando uma camada de abstração como ODBC ou PDO)

Consulte o Manual PHP sobre PDO e gerenciamento de conexões

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

Exemplo sem 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);
}

Como você vê acima, o código para os dois drivers de banco de dados difere em sua sintaxe - é por isso que sugiro usar o PDO.

O PDO evitará muitos problemas e tornará a mudança para outro driver de banco de dados muito mais fácil se você decidir fazê-lo mais tarde. Ele abstrai todos os drivers de banco de dados e oferece uma interface simples para lidar com todos eles com a mesma sintaxe.