首页 > 数据库 > mysql教程 > 如何在PHP中执行跨数据库查询?

如何在PHP中执行跨数据库查询?

Mary-Kate Olsen
发布: 2024-11-15 07:04:02
原创
454 人浏览过

How to Perform Cross Database Queries in PHP?

PHP 中的跨数据库查询

在之前的讨论中,解决了 MySQL 中的跨数据库查询。然而,当尝试在 PHP 中实现这些知识时,出现了挑战。

问题:

PHP 提供了两种使用 mysql_select_db 的方法:

  1. 使用 mysql_select_db 限制对单个数据库的访问
  2. 省略 mysql_select_db 需要在每次查询时指定数据库,这是不方便且不切实际的。

解决方案:

执行PHP中的跨数据库查询无需过多修改,如下步骤即可采取:

  1. 确保数据库驻留在同一主机上。
  2. 使用 mysql_select_db 建立与首选数据库的连接。
  3. 手动指定外部数据库查询,如下所示:
$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
");
登录后复制

如果数据库位于不同的主机,直接加入是不可能的。在这种情况下,可以执行两个查询:

$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);
登录后复制

以上是如何在PHP中执行跨数据库查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板