Heim >Datenbank >MySQL-Tutorial >Wie führe ich datenbankübergreifende Abfragen in PHP durch?
In einer früheren Diskussion wurden datenbankübergreifende Abfragen in MySQL behandelt. Beim Versuch, dieses Wissen in PHP umzusetzen, traten jedoch Herausforderungen auf.
Das Problem:
PHP bietet zwei Ansätze mit mysql_select_db:
Die Lösung:
Um datenbankübergreifende Abfragen in PHP ohne übermäßige Änderungen durchzuführen, können die folgenden Schritte unternommen werden:
$db = mysql_connect($host, $user, $password); mysql_select_db('my_most_used_db', $db); $q = mysql_query(" SELECT * FROM table_on_default_db a, `another_db`.`table_on_another_db` b WHERE a.id = b.fk_id ");
Wenn sich die Datenbanken auf verschiedenen Hosts befinden , direkte Joins sind nicht möglich. In diesem Fall können stattdessen zwei Abfragen durchgeführt werden:
$db1 = mysql_connect($host1, $user1, $password1); $db2 = mysql_connect($host2, $user2, $password2); $q1 = mysql_query(" SELECT id FROM table WHERE [..your criteria for db1 here..] ", $db1); $tmp = array(); while($val = mysql_fetch_array($q1)) $tmp[] = $val['id']; $q2 = mysql_query(" SELECT * FROM table2 WHERE fk_id in (".implode(', ', $tmp).") ", $db2);
Das obige ist der detaillierte Inhalt vonWie führe ich datenbankübergreifende Abfragen in PHP durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!