2013-10-31 50 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

相关问题