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

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

Barbara Streisand
Libérer: 2024-11-11 14:48:03
original
165 Les gens l'ont consulté

How to Execute Cross Database Queries in PHP?

Requêtes entre bases de données en PHP : briser les barrières

Dans l'épisode précédent, la construction de requêtes entre bases de données dans MySQL a été rendue possible. Cependant, la traduction de ces connaissances en PHP a présenté un obstacle en raison des limitations de mysql_select_db.

Options et limitations

Les options disponibles en PHP sont :

  • Utiliser mysql_select_db : Restreint l'utilisation à une base de données par session. La tentative d'utilisation de références croisées de bases de données échoue.
  • Évitez mysql_select_db : Nécessite de spécifier la base de données pour chaque requête, ce qui est fastidieux et peu pratique.

Le Solution

Pour surmonter ces limitations et effectuer des requêtes inter-bases de données en PHP, nous pouvons exploiter la méthode suivante :

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

Prérequis

Cette approche nécessite que les deux bases de données résident sur le même hôte. S'ils se trouvent sur des hôtes différents, les jointures directes ne sont pas possibles. Dans ce cas, vous pouvez exécuter deux requêtes distinctes :

$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

En utilisant cette méthode, vous pouvez effectuer sans effort des requêtes inter-bases de données en PHP, élargissant ainsi les capacités d'interactions de votre base de données.

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