마지막으로 수행한 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[옵션]: 미리 정의된 상수입니다. 이 매개 변수는 다음 표에 나열된 값 중 하나를 사용할 수 있습니다.
| 값 | 설명 |
|---|---|
SQLSRV_ERR_ALL |
마지막으로 sqlsrv 함수를 호출할 때 생성된 오류 및 경고가 반환됩니다. |
SQLSRV_ERR_ALL |
마지막으로 sqlsrv 함수를 호출할 때 생성된 오류가 반환됩니다. |
SQLSRV_ERR_WARNINGS |
마지막으로 sqlsrv 함수를 호출할 때 생성된 경고가 반환됩니다. |
매개 변수 값을 제공하지 않으면 마지막으로 sqlsrv 함수를 호출할 때 생성된 오류와 경고가 모두 반환됩니다.
반환 값
배열의 array 또는 null입니다. 반환되는 array의 각 array에는 세 개의 키-값 쌍이 들어 있습니다. 다음 표에서는 각 키와 해당 설명을 나열합니다.
| 키 | 설명 |
|---|---|
SQLSTATE |
ODBC 드라이버에서 발생하는 오류의 경우 ODBC에서 반환하는 SQLSTATE입니다. ODBC의 SQLSTATE 값에 대한 자세한 내용은 ODBC 오류 코드(ODBC Error Codes)를 참조하십시오. SQL Server Driver for PHP에서 발생하는 오류의 경우 IMSSP의 SQLSTATE입니다. SQL Server Driver for PHP에서 발생하는 경고의 경우 01SSP의 SQLSTATE입니다. |
코드 |
SQL 서버에서 발생하는 오류의 경우 네이티브 SQL Server 오류 코드입니다. ODBC 드라이버에서 발생하는 오류의 경우 ODBC에서 반환하는 오류 코드입니다. SQL Server Driver for PHP에서 발생하는 오류의 경우 SQL Server Driver for PHP 오류 코드입니다. |
메시지 |
오류에 대한 설명입니다. |
숫자 키 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);
?>