다음을 통해 공유


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_ERR_ALL 또는 SQLSRV_ERR_WARNINGS 매개 변수 값 중 하나를 사용하여 sqlsrv_errors를 호출해야만 경고를 검색할 수 있습니다(자세한 내용은 아래의 매개 변수 섹션 참조).

구문

  
sqlsrv_errors( [int $errorsAndOrWarnings] )  

매개 변수

$errorsAndOrWarnings[OPTIONAL]: 미리 정의된 상수입니다. 이 매개 변수는 다음 표에 나열된 값 중 하나를 사용할 수 있습니다.

설명
SQLSRV_ERR_ALL 마지막 sqlsrv 함수 호출 시 생성된 오류 및 경고가 반환됩니다.
SQLSRV_ERR_ERRORS 마지막 sqlsrv 함수 호출 시 생성된 오류가 반환됩니다.
SQLSRV_ERR_WARNINGS 마지막 sqlsrv 함수 호출 시 생성된 경고가 반환됩니다.

매개 변수 값이 제공되지 않으면 마지막 sqlsrv 함수 호출에서 생성된 오류와 경고가 모두 반환됩니다.

Return Value

배열 배열 또는 null입니다. 반환된 배열의 각 배열에는 세 쌍의 키 값이 들어 있습니다. 다음 표에는 각 키와 해당 설명이 나와 있습니다.

설명
SQLSTATE ODBC 드라이버에서 발생한 오류의 경우 ODBC에서 반환된 SQLSTATE입니다. ODBC의 SQLSTATE 값에 대한 자세한 내용은 ODBC 오류 코드를 참조하세요.

MICROSOFT Drivers for PHP for SQL Server에서 발생한 오류의 경우 IMSSP의 SQLSTATE입니다.

MICROSOFT Drivers for PHP for SQL Server에서 발생하는 경고의 경우 SQLSTATE는 01SSP입니다.
코드 SQL Server에서 발생한 오류의 경우 네이티브 SQL Server 오류 코드입니다.

ODBC 드라이버에서 발생한 오류의 경우 ODBC에서 반환된 오류 코드입니다.

MICROSOFT Drivers for PHP for SQL Server에서 발생한 오류의 경우 MICROSOFT Drivers for PHP for SQL Server 오류 코드입니다. 자세한 내용은 오류 및 경고 처리를 참조하세요.
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);  
?>  

참고 항목

SQLSRV 드라이버 API 참조

설명서의 코드 예시 정보