是否可以使用mssql和mysql中的数据创建一个php数组?

时间:2012-06-06 08:02:10

标签: php mysql sql-server sql-server-2008

几乎就像标题一样 - 我有一个脚本,目前正在从最初在MSSQL中的MySQL中提取数据(另一个脚本从MSSQL数据库中提取信息并填充MySQL中的保存表)

这在某种程度上可以正常工作,但是我现在正处于直接从MSSQL数据库和MySQL数据库中提取一些信息的阶段。

有没有办法让PHP查询MySQL和MSSQL并将信息返回到一个数组中?

e.g。如果有关苹果的10家商店销售的所有信息都保存在MySQL中,我的橘子信息保存在MSSQL中,我可以运行一个数组显示上个月每家商店销售的苹果和橙子数量吗?

由于

4 个答案:

答案 0 :(得分:3)

是的,但你不会免费获得任何东西。您需要自己编写代码。例如:

$all_data = array();

query mysql
while(fetching mysql rows) {
  $all_data[] = the mysql row;
}

query mssql
while(fetching mssql rows) {
  $all_data[] = the mssql row;
}

然后只需要通过数组来获取数据。有多种结构化数据的方法,因此您需要构建一个符合您需求的数组。

PHP库中有一些用于处理数组的有用工具。我的收藏夹是array_maparray_filterusort。将此与anonymous functions结合使用,您就可以为构建自己的过滤和排序奠定坚实的基础。

答案 1 :(得分:2)

没有什么能阻止你启动两个连接,在每个连接上运行查询然后将结果融合在一起。

当然,您无法执行连接,因为两台服务器无法相互通信以获得最终结果;这完全取决于你:)

此外,总查询执行时间将是两个查询一起添加的时间,除非您使用运行异步查询的闪亮的新mysqli功能。

答案 2 :(得分:2)

首先,建立与mssql和mysql的连接。 获取mssql和mysql的结果。 然后使用array_combine合并两个数组以获得单个数组。

答案 3 :(得分:0)

您可以考虑的一个解决方案是使用distributed queries。您可以从SQL Server到MySQL设置linked server并使用OPENQUERY()或类似方法一起查询两个服务器。通过这样做,您可以直接在一个查询(在MSSQL上执行),甚至MSSQL中的UPDATE MySQL表中连接MySQL和MSSQL表。

但是,链接的服务器配置起来可能很难,并且性能并不总是可预测的,所以你必须仔细测试它,看它是否a)对你来说表现得足够好b)与你自己的PHP相比,维护成本更低代码。