Поделиться через


sqlsrv_errors

Скачать драйвер PHP

Возвращает расширенные сведения об ошибках и предупреждениях в последней выполненной операции sqlsrv.

Вы можете получать с помощью функции sqlsrv_errors эти сведения, вызывая ее с различными значениями параметров, приведенными в разделе "Параметры" ниже.

По умолчанию предупреждения, созданные при вызове любой функции sqlsrv , обрабатываются как ошибки; при возникновении предупреждения во время вызова функции sqlsrv она возвращает значение false. Однако предупреждения, которые соответствуют значениям SQLSTATE 01000, 01001, 01003 и 01S02, никогда не обрабатываются как ошибки.

Следующая строка кода отключает описанное выше поведение; предупреждение, созданное вызовом функции sqlsrv , не приводит к тому, что функция возвращает значение false:

sqlsrv_configure("WarningsReturnAsErrors", 0);  

Следующая строка кода позволяет возобновить использование поведения по умолчанию; предупреждения (с учетом перечисленных выше исключений) обрабатываются как ошибки:

sqlsrv_configure("WarningsReturnAsErrors", 1);  

Вне зависимости от настройки, предупреждения можно извлечь, только вызывая sqlsrv_errors со значениями параметров SQLSRV_ERR_ALL или SQLSRV_ERR_WARNINGS (дополнительные сведения см. ниже в разделе "Параметры").

Синтаксис

  
sqlsrv_errors( [int $errorsAndOrWarnings] )  

Параметры

$errorsAndOrWarnings(НЕОБЯЗАТЕЛЬНО): предопределенная константа. Этот параметр может принимать одно из значений, содержащихся в следующей таблице.

значение Описание
SQLSRV_ERR_ALL Возвращаются ошибки и предупреждения, созданные при последнем вызове функции sqlsrv .
SQLSRV_ERR_ERRORS Возвращаются ошибки, созданные при последнем вызове функции sqlsrv .
SQLSRV_ERR_WARNINGS Возвращаются предупреждения, созданные при последнем вызове функции sqlsrv .

Если значение параметра не указано, возвращаются ошибки и предупреждения, созданные при последнем вызове функции sqlsrv .

Возвращаемое значение

Массив массивов или значение null. Каждый массив в возвращаемом массиве содержит три пары "ключ-значение". Следующая таблица содержит все ключи и их описания.

Ключ. Description
SQLSTATE Для ошибок, возникших в драйвере ODBC, SQLSTATE, возвращенный ODBC. Сведения о значениях SQLSTATE для ODBC см. в статье Коды ошибок ODBC.

Ошибки, возникающие из драйверов Майкрософт для PHP для SQL Server, SQLSTATE IMSSP.

Для предупреждений, исходящих из драйверов Майкрософт для PHP для SQL Server, SQLSTATE 01SSP.
кодом Для ошибок, возникших в SQL Server, собственный код ошибки SQL Server.

Для ошибок, возникших в драйвере ODBC, код ошибки, возвращенный ODBC.

Для ошибок, возникающих из драйверов Майкрософт для PHP для SQL Server, код ошибки Microsoft Drivers for PHP для SQL Server. Дополнительные сведения см. в статье Handling Errors and Warnings.
message Описание ошибки.

Доступ к значениям массива можно также осуществить с помощью числовых ключей 0, 1 и 2. Если ошибки или предупреждения отсутствуют, возвращается значение null .

Пример

Следующий пример отображает ошибки, возникающие при сбое выполнения инструкции. (Оператор завершается ошибкой, так как InvalidColumName не является допустимым именем столбца в указанной таблице.) В этом примере предполагается, что SQL Server и база данных AdventureWorks установлены на локальном компьютере. При выполнении примера из командной строки все выходные данные выводятся в консоль.

<?php  
/* Connect to the local server using Windows Authentication and   
specify the AdventureWorks database as the database in use. */  
$serverName = "(local)";  
$connectionInfo = array( "Database"=>"AdventureWorks");  
$conn = sqlsrv_connect( $serverName, $connectionInfo);  
if( $conn === false )  
{  
     echo "Could not connect.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Set up a query to select an invalid column name. */  
$tsql = "SELECT InvalidColumnName FROM Sales.SalesOrderDetail";  
  
/* Attempt execution. */  
/* Execution will fail because of the invalid column name. */  
$stmt = sqlsrv_query( $conn, $tsql);  
if( $stmt === false )  
{  
      if( ($errors = sqlsrv_errors() ) != null)  
      {  
         foreach( $errors as $error)  
         {  
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."\n";  
            echo "code: ".$error[ 'code']."\n";  
            echo "message: ".$error[ 'message']."\n";  
         }  
      }  
}  
  
/* Free connection resources */  
sqlsrv_close( $conn);  
?>  

См. также

Справочник по API для драйвера SQLSRV

Информация о примерах кода в документации