Mysql
 sql >> Base de données >  >> RDS >> Mysql

Se connecter à deux bases de données différentes en PHP ?

Réponse courte :Oui .

Réponse longue :
Vous devez vous assurer que votre code utilise toujours des identifiants de connexion pour éviter toute confusion et avoir un code propre et lisible. (Surtout lorsque vous vous connectez aux deux bases de données à l'aide d'une couche d'abstraction comme ODBC ou PDO)

Veuillez consulter le Manuel PHP sur PDO et la gestion des connexions

Exemple :

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

Exemple sans AOP :

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

Comme vous le voyez ci-dessus, le code des deux pilotes de base de données diffère dans sa syntaxe - c'est pourquoi je suggère d'utiliser PDO.

PDO évitera beaucoup de tracas et facilitera le passage à un autre pilote de base de données si vous décidez de le faire plus tard. Il résume tous les pilotes de base de données et vous offre une interface simple pour les gérer tous avec la même syntaxe.