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

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

Barbara Streisand
Barbara Streisand原创
2024-11-11 14:48:03191浏览

How to Execute Cross Database Queries in PHP?

PHP 中的跨数据库查询:打破障碍

在上一集中,在 MySQL 中构建跨数据库查询成为可能。然而,由于 mysql_select_db 的限制,将这些知识转换为 PHP 遇到了障碍。

选项和限制

PHP 中可用的选项有:

  • 使用 mysql_select_db: 限制每个数据库只能使用一个数据库 会议。尝试使用跨数据库引用失败。
  • 避免 mysql_select_db:需要为每个查询指定数据库,这是繁琐且不切实际的。

解决方案

克服这些限制并执行跨数据库查询在 PHP 中,我们可以利用以下方法:

$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
");

先决条件

此方法要求两个数据库驻留在同一主机上。如果它们位于不同的主机上,则无法直接加入。在这种情况下,您可以执行两个单独的查询:

$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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn