Maison > base de données > tutoriel mysql > le corps du texte

Comment effectuer des requêtes inter-bases de données en PHP ?

Mary-Kate Olsen
Libérer: 2024-11-15 07:04:02
original
382 Les gens l'ont consulté

How to Perform Cross Database Queries in PHP?

Requêtes entre bases de données en PHP

Dans une discussion précédente, les requêtes entre bases de données dans MySQL ont été abordées. Cependant, lors de la tentative de mise en œuvre de ces connaissances en PHP, des défis sont survenus.

Le problème :

PHP propose deux approches en utilisant mysql_select_db :

  1. L'utilisation de mysql_select_db restreint l'accès à une seule base de données à la fois.
  2. Omettre mysql_select_db nécessite de spécifier la base de données à chaque requête, ce qui est peu pratique et peu pratique.

La solution :

Pour effectuer des requêtes inter-bases de données en PHP sans modifications excessives, les étapes suivantes peuvent être suivies :

  1. Assurez-vous que les bases de données résident sur le même hôte.
  2. Établissez une connexion à la base de données préférée à l'aide de mysql_select_db.
  3. Spécifiez manuellement la base de données étrangère dans la requête, comme indiqué ci-dessous :
$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
");
Copier après la connexion

Si les bases de données se trouvent sur des hôtes différents, les jointures directes ne sont pas possibles. Dans ce cas, deux requêtes peuvent être effectuées à la place :

$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);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal