sqlsrv_errors
마지막으로 수행된 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_ERRORS | 마지막 sqlsrv 함수 호출 시 생성된 오류가 반환됩니다. |
SQLSRV_ERR_WARNINGS | 마지막 sqlsrv 함수 호출 시 생성된 경고가 반환됩니다. |
매개 변수 값을 지정하지 않은 경우 마지막 sqlsrv 함수 호출 시 생성된 오류 및 경고가 반환됩니다.
반환 값
배열의 배열 또는 null입니다. 반환된 배열의 각 배열에는 세 쌍의 키 값이 들어 있습니다. 다음 표에는 각 키와 해당 설명이 나와 있습니다.
키 | Description |
---|---|
SQLSTATE | ODBC 드라이버에서 발생하는 오류의 경우 ODBC 드라이버에서 반환한 SQLSTATE입니다. ODBC의 SQLSTATE 값에 대한 자세한 내용은 ODBC 오류 코드를 참조하세요. Microsoft Drivers for PHP for SQL Server에서 발생하는 오류의 경우 IMSSP의 SQLSTATE입니다. Microsoft Drivers for PHP for SQL Server에서 발생하는 경고의 경우 01SSP의 SQLSTATE입니다. |
code | SQL Server에서 발생하는 오류의 경우 네이티브 SQL Server 오류 코드입니다. ODBC 드라이버에서 발생하는 오류의 경우 ODBC 드라이버에서 반환된 오류 코드입니다. Microsoft Drivers for PHP for SQL Server에서 발생하는 오류의 경우 Microsoft Drivers for PHP for 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);
?>
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기