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

标签 php mysql sql oracle join

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

tl;博士

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

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

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

但有一些连接逻辑

最佳答案

您不能加入 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);
}

//然后运行你的连接

关于php - 是否可以从 PHP 中的两个不同服务器连接两个表(一个 Mysql,另一个 Oracle)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095192/

相关文章:

php - 如何在php中使用PDO transactino插入后获取插入ID

mysql - 在其他选择语句中选择最大值并显示嵌套选择中的相关字段

mysql - 如何在MySQL中使用不带反引号的保留字

mysql - 如何在 'Select' SQL 查询中将时间范围拆分为间隔

php/css 错误,不要将 Style 加载到某些对象

sql - 在 Google BigQuery 中使用 regexp_extract 提取数据

php - Doctrine 2 索引继承

php - Yii Framework 和 Google App Engine 中的权限问题

php - mysql 搜索 % 和 $ 字符无结果

mysql - 我应该在 Mysql 中将价格存储为小数还是整数?