是否可以连接来自 PHP 中两个不同服务器的两个表(一个 Mysql,另一个 Oracle)?

Is possible to join two tables (One Mysql, the other Oracle) from two different servers in PHP?

我将不谈背景故事,但基本上我有两个不同的数据库可以从中检索信息。 1 是 Oracle(我们只被授予只读访问权限),另一个是 Mysql(我们有完全访问权限)。我的问题是 oracle table 中缺少我们想从中提取数据的列,但是我们需要的列在 mysql table 中。有没有一种方法可以编写连接语句以将此 mysql 列包含到 oracle table 中?我在网上看到人们使用 'LinkedServers' 的实例,但我不确定它在 PHP 中是如何工作的。数据库连接存储在 php 文件中,当我们想要使用该特定数据库时调用该函数。

tl;博士

用户可以使用 mysql 和 oracle table 的联接吗?如果是这样,当数据库信息位于单独的 php 文件中时,如何在 php 中实现?

我想 sql 查询看起来类似于:

select
    *
from
    LocalTable,
    [OtherServerName].[OtherDB].[dbo].[OtherTable]

但有一些连接逻辑

您不能加入 2 个不同的数据库供应商。 查询由特定供应商查询分析器执行。

然而,您可以在 php 中自行加入,但需要将大量信息转储到 php 中。对于小数据集应该没问题,但对于大数据集应该没问题...

您要做的是将数据从一个供应商复制到另一个供应商的临时 table,然后执行连接。

出于本示例的目的,我将使用 PDO。 我将获取 oracle 数据并将其放入 mysql 以便我可以对该数据使用连接...

$oracle_table_b = "select * from mytable";
$oracle_data = $pdo->fetchAll();
$stmt = $pdo_mysql->prepare("insert into mytemptable (mycols)");
foreach ($oracle_data as $row) {
    $stmt->execute($row);
}

//然后运行你的加入