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

时间:2019-07-09 09:16:05

标签: php sql-server database

$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 querey
$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

错误:

  

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

虽然我知道mssql_select_db很旧,但是我需要在该项目中使用它。如您所见,我尝试连接到同一服务器,但同时选择2个不同的数据库,并在同一php页面中运行查询(以连接2个不同的数据库中的数据)。似乎不可变?我什至尝试在对第二个数据库进行查询之前运行mssql_select_db,然后将其更改回第一个数据库。

我了解这是库的局限性(我将从最后选择的数据库中运行所有查询)。

有工作吗?因为我所能做的就是在不可见的iframe中创建页面,并在其中运行具有不同数据库连接的php页面-远不是一个好的解决方案。

1 个答案:

答案 0 :(得分:2)

我希望它的工作原理与直接在SQL环境中运行的工作原理相同(例如,您可以在SSMS或命令行中尝试)。

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

select * from db1.dbo.DUKE 

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