2013-10-31 51 views
0

是否有可能使用MSSQL服務器和ADODB連接在PHP中連接來自不同數據庫的兩個表?加入來自不同數據庫的2個表

/*Connect DB1*/ 
$conn = new COM("ADODB.Connection") or die("Cannot start ADO"); 
$conn->open("PROVIDER=SQLOLEDB;SERVER=SRV;UID=user;PWD=pwd;DATABASE=DB1;"); 

/*Connect DB1*/ 
$conn2 = new COM("ADODB.Connection") or die("Cannot start ADO"); 
$conn2->open("PROVIDER=SQLOLEDB;SERVER=SRV;UID=user;PWD=pwd;DATABASE=DB2;"); 

我需要執行JOIN這兩個數據庫的查詢,像這樣:

select col from DB1.table1 JOIN DB2.table 

回答

1

你不需要2個連接要做到這一點,你可以這樣做只是因爲有一個連接連接用戶有權訪問這兩個數據庫

你只需要之前表名

[數據庫名稱] [DBO]。[表名]

01把數據庫名

這裏是你如何能做到這一點從你給出的例子:

SELECT a.col FROM [DB1].[dbo].[table1] a 
INNER JOIN [DB2].[dbo].[table] b ON a.col = b.col 
+0

我想你的解決方案,它拋出一個異常:致命錯誤:未捕獲的異常「發出com_exception」與消息...無效的對象名稱分貝。 dbo.table1' – Danilo

+0

你真的在這個數據庫上有一個名爲「db」的數據庫還是一個名爲「table1」的表?這就是錯誤所說的。在你給定的連接字符串中,你只有「db1」和「db2」而不是「db」 –

+0

顯然我改變了這些值。好的...我錯了參數..現在它運作良好。謝謝你的傢伙! – Danilo

相關問題