Datenbankübergreifende Abfragen in PHP: Barrieren überwinden
In der vorherigen Folge wurde die Erstellung datenbankübergreifender Abfragen in MySQL ermöglicht. Die Übersetzung dieses Wissens in PHP stellte jedoch aufgrund von Einschränkungen mit mysql_select_db ein Hindernis dar.
Optionen und Einschränkungen
Die in PHP verfügbaren Optionen sind:
Die Lösung
Um diese Einschränkungen zu überwinden und datenbankübergreifende Abfragen durchzuführen In PHP können wir die folgende Methode nutzen:
$db = mysql_connect($hots, $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 ");
Voraussetzungen
Dieser Ansatz erfordert, dass sich beide Datenbanken auf demselben Host befinden. Wenn sie sich auf unterschiedlichen Hosts befinden, sind direkte Beitritte nicht möglich. In diesem Fall können Sie zwei separate Abfragen ausführen:
$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);
Mit dieser Methode können Sie mühelos datenbankübergreifende Abfragen in PHP durchführen und so die Möglichkeiten Ihrer Datenbankinteraktionen erweitern.
Das obige ist der detaillierte Inhalt vonWie führe ich datenbankübergreifende Abfragen in PHP aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!