sqlsrv_query返回false而没有任何错误(sqlsrv_errors())

时间:2017-03-13 09:34:36

标签: php sql-server stored-procedures sqlsrv

我们必须执行MSSQL存储过程才能插入一组行并返回结果。在Microsoft SQL Server Management Studio中执行时,该过程完全按预期工作。但是在PHP中使用sqlsrv_executesqlsrv_query执行时它不起作用。它只插入一行并且不返回任何行。

可以找到存储过程Here

PHP代码是

//Here my SP required one argument. so i passed one argument. this @param and stored procedure argument name should be same(case sensitive)
$sql = " { call ResmaxCompareWithProduction ( ?,? ) } ";
$param1 = 'All';
$param2 = 'desk';
$params = array(array(&$param1, SQLSRV_PARAM_IN),array(&$param2, SQLSRV_PARAM_IN));
$stmt = sqlsrv_prepare($conn,$sql,$params);

if ($stmt===false) {
    // handle error
    print_r(sqlsrv_errors(),true);
}else{
    if (sqlsrv_execute($stmt)===false) {
        // handle error. This is where the error happens
        print_r(sqlsrv_errors(),true);
    }
    else    
    {   
        $resultsetarr = array();
        while($row = sqlsrv_fetch_array($stmt)){
            $resultArray[] = $row;
        }
        print_r($resultArray);
        // success! It never gets here, though.
    }
}

我尝试var_dump过程返回的结果并输出resource(4) of type (SQL Server Statement)

sqlsrv_errors()返回NULL

sqlsrv_fetch_array返回boolean(false)

我甚至尝试使用sqlsrv_query代替sqlsrv_preparesqlsrv_execute,但结果相同。

你们可以帮助我找出问题所在并使程序按预期运行。

0 个答案:

没有答案