Heim  >  Artikel  >  Datenbank  >  Wie führe ich datenbankübergreifende Abfragen in PHP aus?

Wie führe ich datenbankübergreifende Abfragen in PHP aus?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 14:48:03160Durchsuche

How to Execute Cross Database Queries in PHP?

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:

  • Mysql_select_db verwenden: Beschränkt die Nutzung auf eine Datenbank pro Sitzung. Der Versuch, datenbankübergreifende Verweise zu verwenden, schlägt fehl.
  • Vermeiden Sie mysql_select_db:Erfordert die Angabe der Datenbank für jede Abfrage, was mühsam und unpraktisch ist.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn