2015-11-13 112 views
0

我执行使用SQLSRV存储过程中的PHP代码是这样的:执行存储过程SQLSRV在PHP

$tsql_callSP = "{call cnt.stproc1(?)}"; 
    $rotCode = '1111'; 
    $params = array( 
        array($rotCode, SQLSRV_PARAM_IN), 
        ); 

    $serverName = "xxxxxxx\wwwwwww"; //serverName\instanceName 
    $connectionInfo = array("Database"=>"aaaaaaaaaaa", "UID"=>"bbbbbbb", "PWD"=>"ccccccc"); 
    $conn = sqlsrv_connect($serverName, $connectionInfo); 

    /* Execute the query. */ 
    $stmt3 = sqlsrv_query($conn, $tsql_callSP, $params); 
    if($stmt3 === false) 
    { 
     echo "Error in executing statement 3.\n"; 
     die(print_r(sqlsrv_errors(), true)); 
    } 

存储过程是成功的DB执行和做的事情必须做,但在我的PHP代码,我总是落在failiure如果(stmt3 ===假)收到以下错误:

 Array ([0] => Array ([0] => 01000 [SQLSTATE] => 01000 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]0510620150922777 [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]0510620150922777) [1] => Array ([0] => 01000 [SQLSTATE] => 01000 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]UPDATE 004 [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]UPDATE 004)) 

这里有什么问题?为什么它执行得很好,但驱动程序处理我这个错误?

+0

sproc返回什么?也许那个回报价值就是欺骗某个层面,认为这是失败。 –

回答

1

完成。这不是一个错误,只是一个警告。 然而,SQLSRV会将警告视为错误,除非有另行告知:

sqlsrv_configure("WarningsReturnAsErrors", 0); 

还是要谢谢你。