【问题标题】:Is it possible to create a php array with data from both mssql and mysql?是否可以使用来自 mssql 和 mysql 的数据创建一个 php 数组?
【发布时间】:2012-06-10 05:45:06
【问题描述】:

真的和标题一样——我有一个脚本,目前,它从 MySQL 中提取最初在 MSSQL 中的数据(另一个脚本从 MSSQL 数据库中提取信息并在 MySQL 中填充一个保存表)

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

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    $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 结合使用,您就有了构建自己的过滤和排序的坚实基础。

    【讨论】:

    • 这就是我真正需要做的一切——我真的不想花太多时间尝试它而不知道它实际上是可能的!感谢您的帮助
    【解决方案2】:

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

    但是,链接服务器可能难以配置,并且性能并不总是可预测的,因此您必须仔细测试它以查看它是否 a) 性能对您来说足够好 b) 维护工作比您自己的 PHP 少代码。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-11-29
          • 1970-01-01
          • 2017-07-03
          • 2021-10-27
          • 2020-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-09
          相关资源
          最近更新 更多