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

Connetti a due diversi database in PHP?

Risposta breve: .

Risposta lunga:
Dovresti assicurarti che il tuo codice utilizzi sempre identificatori di connessione per evitare confusione e avere un codice pulito e leggibile. (Soprattutto quando ti connetti a entrambi i database usando un livello di astrazione come ODBC o PDO)

Consulta il Manuale PHP su PDO e gestione delle connessioni

Esempio:

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

Esempio senza DOP:

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

Come vedi sopra, il codice per i due driver di database differisce nella sua sintassi, ecco perché suggerisco di usare PDO.

PDO eviterà molti problemi e renderà molto più semplice il passaggio a un altro driver di database se deciderai di farlo in un secondo momento. Astrae tutti i driver di database e ti offre un'interfaccia semplice per gestirli tutti con la stessa sintassi.