sql >> Database teknologi >  >> RDS >> Mysql

Vil du oprette forbindelse til to forskellige databaser i PHP?

Kort svar:Ja .

Langt svar:
Du bør sikre dig, at din kode altid bruger forbindelsesidentifikatorer for at undgå forvirring og have en ren, læsbar kode. (Især når du forbinder til begge databaser ved hjælp af et abstraktionslag som ODBC eller PDO)

Se venligst PHP-manualen om PDO og forbindelsesstyring

Eksempel:

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

Eksempel uden 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);
}

Som du kan se ovenfor, er koden for de to databasedrivere forskellig i sin syntaks - det er derfor, jeg foreslår at bruge PDO.

PDO vil undgå en masse besvær og vil gøre det meget nemmere at skifte til en anden databasedriver, hvis du beslutter dig for at gøre det senere. Det abstraherer alle databasedrivere og giver dig en enkel grænseflade til at håndtere dem alle med den samme syntaks.



  1. Mac + virtualenv + pip + postgresql =Fejl:pg_config eksekverbar fil blev ikke fundet

  2. Sådan forespørges sql med aktiv registrering for datoer mellem specificerede tidspunkter

  3. Kom godt i gang med MariaDB ved hjælp af Docker, Java Spring og JDBC

  4. java.sql.SQLException:Forkert strengværdi:'\xF0\x9F\x91\xBD\xF0\x9F...'