Я выполняю хранимую процедуру, используя 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));
}
Хранимая процедура выполняется в БД успешно и делает то, что должна, но в моем php-коде я всегда проваливаюсь, если (stmt3 === false) получаю следующую ошибку:
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 ) )
Что здесь не так? почему он выполняется хорошо, но драйвер обрабатывает эту ошибку?
Готово. Это была не ошибка, а просто предупреждение.
Однако sqlsrv рассматривает предупреждения как ошибки, если не указано иное с помощью:
sqlsrv_configure("WarningsReturnAsErrors", 0);
Спасибо, в любом случае.
Других решений пока нет …