Php sqlsrv - 如何使用两个或更多数据库

时间:2017-05-10 08:45:20

标签: php sql-server

我想在脚本中使用两个带有一个白银的数据库,但查询不起作用。 我的关系:

$serverName = "12.354.25.5"; //serverName\instanceName
//first
$connectionInfo = array( "Database"=>"GRQ", "UID"=>"RFUser", "PWD"=>"****", "CharacterSet" => "UTF-8");
global $con;
$con = sqlsrv_connect( $serverName, $connectionInfo);
//second
$connectionpyr = array( "Database"=>"PiF", "UID"=>"greystone", "PWD"=>"****", "CharacterSet" => "UTF-8");
global $conpyr;
$conpyr = sqlsrv_connect( $serverName, $connectionpyr);

第一个连接工作正常,我使用select来获取数据:

$SQL = "SELECT id,col1,col8,col9 FROM [dbo].[RF_TableWHERE ID=".$data[$k]."";
$result = sqlsrv_query($con,$SQL); //it work fine

使用第二个连接,我尝试执行存储过程,

$VER = "DECLARE @Debt MONEY, @ResultMsg NVARCHAR(255) 

        EXEC Pyramid.dbo.CheckDebt @AccountNumber =".$numlic.", -- int

    @PeriodFrom = '".$dstart."', -- date 

    @PeriodTo = '".$dend."', -- date 

    @Debt = @Debt OUTPUT, -- money

    @ResultMsg = @ResultMsg OUTPUT -- nvarchar(500)
    ";

$result2 = sqlsrv_query($conpyr,$VER);

但只获得

  

将无效参数传递给sqlsrv_query。

连接2的资源ID为空(无)

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您有多个数据库连接,则应在开始连接到db2之前关闭connection1。