sql >> Database >  >> RDS >> Mysql

Verbinding maken met twee verschillende databases in PHP?

Kort antwoord:Ja .

Lang antwoord:
U moet ervoor zorgen dat uw code altijd verbindings-ID's gebruikt om verwarring te voorkomen en een schone, leesbare code heeft. (Vooral wanneer u verbinding maakt met beide databases met behulp van een abstractielaag zoals ODBC of PDO)

Raadpleeg de PHP-handleiding over PDO en verbindingsbeheer

Voorbeeld:

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

Voorbeeld zonder BOB:

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

Zoals je hierboven ziet, verschilt de syntaxis van de code voor de twee databasestuurprogramma's - daarom raad ik aan om PDO te gebruiken.

PDO vermijdt een hoop gedoe en maakt het overstappen naar een ander databasestuurprogramma veel gemakkelijker als u besluit dit later te doen. Het abstraheert alle databasestuurprogramma's en geeft u een eenvoudige interface om ze allemaal met dezelfde syntaxis te behandelen.



  1. MariaDB-prestaties bewaken in een hybride cloud

  2. Django - Hoe koppel ik via tussenpersoon naar een legacy database?

  3. MySQL TINYINT als niet-ondertekend

  4. is PDO::PARAM_INT overbodig?