是否可以从PHP中的两个不同服务器加入两个表(One Mysql,另一个Oracle)?

时间:2015-01-22 17:37:48

标签: php mysql sql oracle join

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

TL;博士

用户可以使用mysql和oracle表的连接吗?如果是这样,当db信息在一个单独的php文件中时,如何在php中实现它?

我想sql查询看起来与此类似:

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

但有一些连接逻辑

1 个答案:

答案 0 :(得分:1)

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

然而,你可以在PHP中加入自己,但需要将大量信息转储到php中。小数据集对大型数据集来说应该没问题......

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

出于本示例的目的,我将使用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);
}

//然后运行你的联接