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. Каждый массив в возвращаемом массиве содержит три пары "ключ-значение". Следующая таблица содержит все ключи и их описания.

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

Для ошибок, возникших в Драйверы Microsoft SQL Server для PHP, SQLSTATE для IMSSP.

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

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

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

Доступ к значениям массива можно также осуществить с помощью числовых ключей 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

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