几乎就像标题一样 - 我有一个脚本,目前正在从最初在MSSQL中的MySQL中提取数据(另一个脚本从MSSQL数据库中提取信息并填充MySQL中的保存表)
这在某种程度上可以正常工作,但是我现在正处于直接从MSSQL数据库和MySQL数据库中提取一些信息的阶段。
有没有办法让PHP查询MySQL和MSSQL并将信息返回到一个数组中?
e.g。如果有关苹果的10家商店销售的所有信息都保存在MySQL中,我的橘子信息保存在MSSQL中,我可以运行一个数组显示上个月每家商店销售的苹果和橙子数量吗?
由于
答案 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_map,array_filter和usort。将此与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相比,维护成本更低代码。