Php mssql_connect不会连接同一SQL Server上的不同数据库

Php mssql_connect不会连接同一SQL Server上的不同数据库,php,sql-server,database,Php,Sql Server,Database,错误: 警告:mssql_query()[function.mssql query]:消息:无效的对象名称“DUKE” 是的,我知道mssql\u select\u db很旧,但我需要在这个项目中使用它。如您所见,我尝试连接到同一台服务器,但同时选择了两个不同的数据库,并在同一个php页面中运行查询(以连接来自两个不同数据库的数据)。似乎它是无效的?我甚至试着在对第二个db进行查询之前运行mssql\u select\u db,然后将其更改回第一个db 我知道这是库的限制(我将从最后选择的数据库

错误:

警告:mssql_query()[function.mssql query]:消息:无效的对象名称“DUKE”

是的,我知道
mssql\u select\u db
很旧,但我需要在这个项目中使用它。如您所见,我尝试连接到同一台服务器,但同时选择了两个不同的数据库,并在同一个php页面中运行查询(以连接来自两个不同数据库的数据)。似乎它是无效的?我甚至试着在对第二个db进行查询之前运行
mssql\u select\u db
,然后将其更改回第一个db

我知道这是库的限制(我将从最后选择的数据库运行所有查询)


有解决办法吗?因为我得到的只是在不可见的iframe中创建页面,然后使用不同的db连接运行php页面,这远远不是一个好的解决方案。

我希望这将与直接在SQL环境中运行的情况相同(例如,您可以在SSMS中或从命令行尝试)

在查询中引用表时,可以指定数据库名称:例如

$conn_161 = "192.168.0.161";  //local serwer adress
$user_161 = "ME";
$pass_161 = "what_is_the_password?";
$connect_161 = mssql_connect($conn_161,$user_161,$pass_161);
mssql_select_db ( 'DUKENUKEN3D' , $connect_161 );

//as requested - 1st DB connection and 1st query
$q_duke = "select * from DUKE /*DB1*/";
$r_duke = mssql_query($q_wartownik,$connect_161); //result

$connect_different_db = mssql_connect($conn_161,$user_161,$pass_161);
mssql_select_db ( 'BIGMAN' , $connect_different_db );

//second db and query
$q_bigman = "select * from BIGPEOPLE /*DB2*/";
$r_bigman = mssql_query($q_bigman,$connect_different_db ); //result

当您要引用当前数据库上下文之外的对象时,这是SQL Server的标准行为。

您需要向我们显示您正在进行的查询,因为错误与查询有关,而不是与数据库或数据库连接的选择有关。我之所以这样做,是因为警告说使用了mssql_query()函数。旁注:在将变量作为函数参数传递时,没有理由引用它们。与其说:
mssql\u connect($conn\u 161,…)
,不如说做
mssql\u connect($conn\u 161,…等)
这里的错误似乎很明显。对象
表\u NAME
存在于您连接(查询)工作的数据库中,但它不存在于其他数据库中,因此您的查询失败。我已更新了answear。是的,这就是重点-我在第二个数据库中没有表名(编辑后为DUKE)-但我不控制数据库-我只需要从数据库中获取数据,我不知道mssql\u select\u DB现在如何工作。Thanx。看起来很有希望。我现在不在工作,我会试试这个,如果可以的话,我会接受这个。先生,你说得对极了!我没想到。在我的例子中,这是正确的语法:
select*from[DUKENUKEN3D].[dbo].[zmiany]//dbo表示数据库所有者
I是的,dbo表示数据库所有者。它表示表所属的数据库中的模式。很高兴它帮助了你。
select * from db1.dbo.DUKE