Php 如何连接位于不同服务器上的两个MySQL数据库中的表?

Php 如何连接位于不同服务器上的两个MySQL数据库中的表?,php,mysql,database-connection,Php,Mysql,Database Connection,我们有一个由一家大型国际公司托管的网站,我们的软件包包括许多MySQL数据库:它们位于不同的服务器上。我希望运行一个SQL查询,使用两个不同数据库上的表之间的LFET联接来选择项 在PHP脚本中,我设置了两个独立的数据库连接,然后运行SELECT查询,只引用两个表中的字段(数据库之间没有公共字段或表名)。此操作无法运行。在互联网上的各种搜索中,我找到了以下提示: 1.扩展对databasename.tablename.fieldname格式的引用 2.确保两个数据库连接完全不同&添加“true”

我们有一个由一家大型国际公司托管的网站,我们的软件包包括许多MySQL数据库:它们位于不同的服务器上。我希望运行一个SQL查询,使用两个不同数据库上的表之间的LFET联接来选择项

在PHP脚本中,我设置了两个独立的数据库连接,然后运行SELECT查询,只引用两个表中的字段(数据库之间没有公共字段或表名)。此操作无法运行。在互联网上的各种搜索中,我找到了以下提示: 1.扩展对databasename.tablename.fieldname格式的引用 2.确保两个数据库连接完全不同&添加“true”参数

$db=MYSQL_CONNECT($server, $user, $password, true) or die ( "<H3>Server unreachable</H3>");
$seldb=MYSQL_SELECT_DB($database) or die ( "<H3>Database non existent</H3>");

$dbM=MYSQL_CONNECT($serverm, $userm, $passwordm, true) or die ( "<H3>members database server unreachable</H3>");
$seldbM=MYSQL_SELECT_DB($databasem) or die ( "<H3>Members database non existent</H3>");
我希望运行一个SQL查询,使用两个不同数据库上的表之间的LFET联接来选择项


那是不可能的。

听起来你要找的东西叫做:

联邦存储引擎从MySQL 5.0.3开始提供。 它是一个存储引擎,用于访问远程数据库表中的数据 数据库而不是本地表中的数据库

联邦存储引擎从MySQL 5.0.3开始提供。 此存储引擎允许从远程MySQL访问数据 不使用复制或群集的本地服务器上的数据库 技术使用联合表时,本地服务器上的查询 在远程(联合)表上自动执行。没有数据 存储在本地表上


虽然我不确定它是否非常有效,但您可以尝试使用一个数据库中的数据填充一个数组,使用另一个数据库中的数据填充一个数组,并使用数组函数处理它们,可能是数组合并,等等。。只是一个想法

加入一个联邦表怎么样?让他的hoster公司安装这个引擎。我会回答实际问题。谢谢你证实我的担心。从我的经验来看,联邦存储引擎并不像预期的那么棒。对我来说最糟糕的事情是,它会给每个查询增加约0.5秒的开销(我想是为了处理连接)。这是在一个相当小的1GBit LAN中,两台服务器位于同一网段中。也许,但这是OP应该自己探索并做出可行性决策的一个选项。感谢您的建议,但我们的网络托管公司似乎没有提供这一选项(对于非专家来说,这似乎也是一个相当大的学习挑战!)。您好,AndrewArray的操控是我很难对付的事情!通过从一个数据库中的表创建一个数组,并在处理另一个数据库的输出时在其中查找内容,我完成了一项任务。非常不雅观,但它奏效了!非常感谢你的建议。你好,安德鲁。这会很有帮助:
 $SQL="SELECT db1 roles.HMRSmembershipNumber, people.called,  people.lastname
       FROM roles LEFT JOIN people ON roles.HMRSmembershipNumber = people.HMRSmembershipNumber
  WHERE role LIKE 'EC Member%'
 ;";