sql >> Databáze >  >> RDS >> Mysql

Připojit se ke dvěma různým databázím v PHP?

Krátká odpověď:Ano .

Dlouhá odpověď:
Měli byste se ujistit, že váš kód vždy používá identifikátory připojení, aby nedošlo k záměně a měl čistý a čitelný kód. (Zejména když se připojíte k oběma databázím pomocí abstraktní vrstvy, jako je ODBC nebo PDO)

Podívejte se prosím do příručky PHP o PDO a správě připojení

Příklad:

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

Příklad bez 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);
}

Jak vidíte výše, kód pro dva databázové ovladače se liší svou syntaxí – proto doporučuji používat PDO.

PDO se vyhne spoustě potíží a výrazně usnadní přechod na jiný databázový ovladač, pokud se tak rozhodnete později. Abstrahuje všechny databázové ovladače a poskytuje vám jednoduché rozhraní pro jejich obsluhu se stejnou syntaxí.



  1. Převod řetězce s oddělovači na více hodnot v mysql

  2. Najděte v MySQL hodnoty, které neobsahují čísla

  3. JDBC ResultSet getDate ztrácí přesnost

  4. Výjimka mySQL:Nelze se připojit k žádnému ze zadaných hostitelů MySQL. přes C#