簡體   English   中英

是否可以使用mssql和mysql中的數據創建一個php數組?

[英]Is it possible to create a php array with data from both mssql and mysql?

幾乎就像標題一樣 - 我有一個腳本,目前正在從最初在MSSQL中的MySQL中提取數據(另一個腳本從MSSQL數據庫中提取信息並填充MySQL中的保存表)

這在某種程度上可以正常工作,但是我現在正處於直接從MSSQL數據庫和MySQL數據庫中提取一些信息的階段。

有沒有辦法讓PHP查詢MySQL和MSSQL並在單個數組中返回信息?

例如,如果有關蘋果的10家商店銷售的所有信息都保存在MySQL中,而我的橘子信息保存在MSSQL中,我可以運行以便一個數組顯示上個月每家商店銷售的蘋果和橙子數量是多少?

謝謝

是的,但你不會免費獲得任何東西。 您需要自己編寫代碼。 例如:

$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 將此與匿名函數相結合 ,您就擁有了構建自己的過濾和排序的堅實基礎。

沒有什么能阻止您啟動兩個連接,在每個連接上運行查詢,然后將結果融合在一起。

當然,您無法執行連接,因為兩個服務器無法相互通信以獲得最終結果; 全取決於你 :)

此外,總查詢執行時間將是兩個查詢一起添加的時間,除非您使用運行異步查詢的閃亮的新mysqli功能。

首先,建立與mssql和mysql的連接。 獲取mssql和mysql的結果。 然后使用array_combine合並兩個數組以獲得單個數組。

您可以考慮的一種解決方案是使用分布式查詢 您可以設置從SQL Server到MySQL的鏈接服務器 ,並使用OPENQUERY()或類似方法一起查詢兩個服務器。 通過這樣做,您可以在一個查詢中直接連接MySQL和MSSQL表(在MSSQL上執行),甚至可以從MSSQL UPDATE MySQL表。

但是,鏈接服務器可能很難配置,並且性能並不總是可預測的,因此您必須仔細測試,以確定它是否a)對您來說運行良好,並且b)維護的能力比您自己的PHP代碼要少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM