如何連接來自不同數據庫的兩個表格。一個數據庫是localhost,另一個在線。如何連接來自不同數據庫的兩個表格
$connectA = mysql_connect('localhost','root','','abc');
$connectB = mysql_connect('xxx','yyy','zzz','xyz');
我想從其中有數據庫ABC和XYZ表部門加入DEPARTMENT_NAME。
如何連接來自不同數據庫的兩個表格。一個數據庫是localhost,另一個在線。如何連接來自不同數據庫的兩個表格
$connectA = mysql_connect('localhost','root','','abc');
$connectB = mysql_connect('xxx','yyy','zzz','xyz');
我想從其中有數據庫ABC和XYZ表部門加入DEPARTMENT_NAME。
你不能只要通過join
你的意思是使用SQL JOINS
。這是因爲SQL查詢總是被髮送到特定的數據庫或服務器。
您需要發送兩個獨立的查詢,每一個數據庫,然後提供一些邏輯的PHP通過array_merge
加入他們是(全連接)或一些更高級的腳本。
沒有看到自己的一些代碼不能幫助更多。
可以用一個例子來解釋我。 – 2015-02-24 11:24:39
如果MySQL用戶同時訪問數據庫,他們是在同一主機上(即兩個數據塊都來自同一個連接訪問),您可以:
保持一個連接開放,並呼籲mysql_select_db()
交換必要之間。我不確定這是乾淨的解決方案,你最終可能會查詢錯誤的數據庫。
在查詢中引用表時指定數據庫名稱(例如SELECT * FROM database2.tablename
)。這可能是一個痛苦的實施。
另外請閱讀troelskn的答案,因爲如果你能夠使用PDO而不是舊的擴展,這是一個更好的方法。
OP表示一個是localhost,另一個是在線的(我假設他在他的機器上使用php工作,並使用他的機器上的一個數據庫和一個來自互聯網的數據庫) – Forien 2015-02-24 12:49:47
如前所述,這是不可能的。 我會保存數據庫連接並在數據庫之間切換。
只是一個簡單的例子(與mysqli的)
$db1 = mysqli_connect("localhost", "my_user", "my_password", "world");
$db2 = mysqli_connect("localhost2", "my_user2", "my_password2", "world2");
然後當你想執行一個查詢
mysqli_query($db1, "SELECT * ...");
或其他數據庫
mysqli_query($db2, "SELECT * ...");
保存從結果您的查詢在數組中,然後使用例如array_merge
加入它們。
你需要做的處理PHP。由於數據庫不在同一臺服務器上,所以直接'JOIN's是不可能的。另外,從已棄用的'mysql_'函數集移開 - 查看'PDO'或'mysqli'。我假設'abc'和'xyz'參數正被用來創建一個新的鏈接,而不是重複使用前一個鏈接? – DaveyBoy 2015-02-24 12:07:20