상수(Microsoft Drivers for PHP for SQL Server)

PHP 드라이버 다운로드

이 항목에서는 MICROSOFT Drivers for PHP for SQL Server가 정의한 상수에 대해 설명합니다.

PDO_SQLSRV 드라이버 상수

PDO 웹 사이트에 나열된 상수는 MICROSOFT Drivers for PHP for SQL Server에서 유효합니다.

다음은 PDO_SQLSRV 드라이버의 Microsoft 관련 상수에 대해 설명합니다.

트랜잭션 격리 수준 상수

PDO::__construct와 함께 사용되는 TransactionIsolation 키에는 다음 상수 중 하나를 사용할 수 있습니다.

  • PDO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

TransactionIsolation 키에 대한 자세한 내용은 연결 옵션을 참조하세요.

상수 인코딩

PDO::SQLSRV_ATTR_ENCODING 특성은 PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumnPDOStatement::bindParam에 전달될 수 있습니다.

PDO::SQLSRV_ATTR_ENCODING에 전달할 수 있는 값은 다음과 같습니다.

PDO_SQLSRV 드라이버 상수 설명
PDO::SQLSRV_ENCODING_BINARY 데이터는 인코딩 또는 변환을 수행하지 않고 서버에서 반환되는 원시 바이트 스트림입니다.

PDO::setAttribute에는 유효하지 않습니다.
PDO::SQLSRV_ENCODING_SYSTEM 데이터는 시스템에 설정된 Windows 로캘의 코드 페이지에 지정된 8비트 문자입니다. 이 코드 페이지에 매핑되지 않는 멀티바이트 문자 또는 문자는 단일바이트 물음표(?) 문자로 대체됩니다.
PDO::SQLSRV_ENCODING_UTF8 데이터는 UTF-8 인코딩 형식입니다. 이는 기본 인코딩입니다.
PDO::SQLSRV_ENCODING_DEFAULT 연결 중에 지정한 경우 PDO::SQLSRV_ENCODING_SYSTEM을 사용합니다.

prepare 문에 지정된 경우 연결의 인코딩을 사용합니다.

쿼리 시간 제한

PDO::SQLSRV_ATTR_QUERY_TIMEOUT 특성은 제한 시간(초)을 나타내는 음수가 아닌 정수입니다. 영(0)이 기본값이며 시간 제한이 없음을 의미합니다.

PDOStatement::setAttribute, PDO::setAttributePDO::prepare를 사용하여 PDO::SQLSRV_ATTR_QUERY_TIMEOUT 특성을 지정할 수 있습니다.

직접 또는 준비된 실행

PDO::SQLSRV_ATTR_DIRECT_QUERY 특성을 사용하여 직접 쿼리 실행 또는 준비된 문 실행을 선택할 수 있습니다. PDO::SQLSRVATTRDIRECTQUERY는 PDO::prepare 또는 PDO::setAttribute를 사용하여 설정될 수 있습니다. PDO::SQLSRV_ATTR_DIRECT_QUERY에 대한 자세한 내용은 PDO_SQLSRV 드라이버에서 직접 명령문 실행 및 준비된 명령문 실행을 참조하세요.

숫자 페치 처리

PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE 특성은 숫자 SQL 형식(비트, 정수, smallint, tinyint, 부동 및 실수)이 있는 열에서 숫자 페치를 처리하는 데 사용할 수 있습니다. PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE이 true로 설정되면 정수 열의 결과는 실수로 표시되고 SQL 부동 소수점 및 실수는 부동 소수점으로 표시됩니다. 이 특성은 PDOStatement::setAttribute를 사용하여 설정할 수 있습니다.

PDO::SQLSRV_ATTR_FORMAT_DECIMALS 및 PDO::SQLSRV_ATTR_DECIMAL_PLACES 특성을 사용하여 기본 10진수 형식 지정 동작을 수정할 수 있습니다. 이러한 특성의 동작은 출력 매개 변수가 형식에 지원되지 않는다는 점을 제외하고 SQLSRV 쪽(FormatDecimalsDecimalPlaces)의 해당 옵션과 동일합니다. 이러한 특성은 PDO::setAttribute 또는 PDOStatement::setAttribute를 사용하여 연결 또는 문 수준에서 설정할 수 있지만, 문 특성은 해당 연결 특성을 재정의합니다. 자세한 내용은 10진수 문자열 및 Money 값 형식 지정(PDO_SQLSRV 드라이버)을 참조하세요.

날짜 및 시간 가져오기 처리

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE은 날짜 및 시간 형식을 PHP DateTime 개체로 검색할지 여부를 지정합니다. false로 유지하면, 기본 동작은 문자열로 반환하는 것입니다. 이러한 특성은 PDO::setAttribute 또는 PDOStatement::setAttribute를 사용하여 연결 또는 문 수준에서 설정할 수 있지만 문 특성은 해당 연결 특성을 재정의합니다. 자세한 내용은 방법: PDO_SQLSRV 드라이버를 사용하여 날짜 및 시간 형식을 PHP 날짜/시간 개체로 검색을 참조하세요.

SQLSRV 드라이버 상수

다음 섹션에서는 SQLSRV 드라이버에서 사용하는 상수에 대해 설명합니다.

ERR 상수

다음 테이블에는 sqlsrv_errors가 오류, 경고 또는 둘 다를 반환하는지 여부를 지정하는 데 사용되는 상수가 나열되어 있습니다.

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

FETCH 상수

다음 테이블에는 sqlsrv_fetch_array가 반환하는 배열 유형을 지정하는 데 사용되는 상수가 나열되어 있습니다.

SQLSRV 상수 설명
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array는 데이터의 다음 행을 결합형 배열로 반환합니다.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array는 데이터의 다음 행을 숫자와 결합형 키를 모두 가진 배열로 반환합니다. 기본값입니다.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array는 데이터의 다음 행을 숫자 인덱싱된 배열로 반환합니다.

Logging 상수

이 섹션에서는 sqlsrv_configure로 로깅 설정을 변경하는 데 사용되는 상수를 나열합니다. 로깅 활동에 대한 자세한 내용은 로깅 활동그을 참조하세요.

다음 테이블은 LogSubsystems 설정에 대한 값으로 사용할 수 있는 상수를 나열합니다.

SQLSRV 상수(괄호 안의 정수에 해당하는 정수) 설명
SQLSRV_LOG_SYSTEM_ALL(-1) 모든 하위 시스템의 로깅을 활성화합니다.
SQLSRV_LOG_SYSTEM_CONN (2) 연결 작업의 로깅을 활성화합니다.
SQLSRV_LOG_SYSTEM_INIT(1) 초기화 작업의 로깅을 설정합니다.
SQLSRV_LOG_SYSTEM_OFF (0) 로깅을 해제합니다.
SQLSRV_LOG_SYSTEM_STMT (4) 문 활동의 로깅을 활성화합니다.
SQLSRV_LOG_SYSTEM_UTIL(8) 오류 함수 작업(예: handle_errorhandle_warning)의 로깅을 설정합니다.

다음 표는 LogSeverity 설정에 대한 값으로 사용할 수 있는 상수를 나열합니다.

SQLSRV 상수(괄호 안의 정수에 해당하는 정수) 설명
SQLSRV_LOG_SEVERITY_ALL (-1) 오류, 경고 및 알림이 기록된다는 것을 지정합니다.
SQLSRV_LOG_SEVERITY_ERROR (1) 오류를 기록하도록 지정합니다.
SQLSRV_LOG_SEVERITY_NOTICE (4) 알림을 기록하도록 지정합니다.
SQLSRV_LOG_SEVERITY_WARNING (2) 경고가 기록된다는 것을 지정합니다.

Null을 허용하는 상수

다음 표는 열이 Null을 허용하는지 여부 또는 이 정보를 사용할 수 있는지 여부를 확인하는 데 사용할 수 있는 상수를 나열합니다. sqlsrv_field_metadata에서 반환되는 Nullable 키의 값을 비교하여 열의 null 허용 상태를 확인할 수 있습니다.

SQLSRV 상수(괄호 안의 정수에 해당하는 정수) 설명
SQLSRV_NULLABLE_YES(0) 열이 Null을 허용합니다.
SQLSRV_NULLABLE_NO (1) 열이 null 허용이 아닙니다.
SQLSRV_NULLABLE_UNKNOWN (2) 열이 null 허용인지 여부는 알 수 없습니다.

PARAM 상수

다음 목록에는 sqlsrv_query 또는 sqlsrv_prepare를 호출할 때 매개 변수 방향을 지정하는 상수가 포함되어 있습니다.

SQLSRV 상수 설명
SQLSRV_PARAM_IN 입력 매개 변수를 나타냅니다.
SQLSRV_PARAM_INOUT 양방향 매개 변수를 나타냅니다.
SQLSRV_PARAM_OUT 출력 매개 변수를 나타냅니다.

PHPTYPE 상수

다음 테이블은 PHP 데이터 형식을 설명하는 데 사용되는 상수를 나열합니다. PHP 데이터 형식에 대한 자세한 내용은 PHP 형식을 참조하세요.

SQLSRV 상수 PHP 데이터 형식
SQLSRV_PHPTYPE_INT 정수
SQLSRV_PHPTYPE_DATETIME DateTime
SQLSRV_PHPTYPE_FLOAT Float
SQLSRV_PHPTYPE_STREAM($encoding1) 스트림
SQLSRV_PHPTYPE_STRING($encoding1) 문자열
  1. SQLSRV_PHPTYPE_STREAMSQLSRV_PHPTYPE_STRING은 스트림 인코딩을 지정하는 매개 변수를 허용합니다. 다음 테이블에는 허용되는 매개 변수인 SQLSRV 상수와 해당 인코딩에 대한 설명이 포함되어 있습니다.
SQLSRV 상수 설명
SQLSRV_ENC_BINARY 데이터는 인코딩 또는 변환을 수행하지 않은 원시 바이트 스트림으로 서버에서 반환됩니다.
SQLSRV_ENC_CHAR 데이터는 시스템에 설정된 Windows 로캘의 코드 페이지에 지정된 8비트 문자입니다. 이 코드 페이지에 매핑되지 않는 멀티바이트 문자 또는 문자는 단일바이트 물음표(?) 문자로 대체됩니다.

이는 기본 인코딩입니다.
"UTF-8" 데이터는 UTF-8 인코딩으로 반환됩니다. 이 상수는 Microsoft Drivers for PHP for SQL Server 버전 1.1에 추가되었습니다. UTF-8 지원에 대한 자세한 내용은 기본 제공 UTF-8 지원을 사용하여 UTF-8 데이터 보내기 및 검색을 참조하세요.

참고 항목

SQLSRV_PHPTYPE_STREAM 또는 SQLSRV_PHPTYPE_STRING을 사용하는 경우 인코딩이 지정되어야 합니다. 매개 변수가 제공되지 않으면 오류가 반환됩니다.

이러한 상수에 대한 자세한 내용은 방법: PHP 데이터 형식 지정, 방법: SQLSRV 드라이버를 사용하여 스트림으로 문자 데이터 가져오기를 참조하세요.

SQLTYPE 상수

다음 표는 SQL Server 데이터 형식을 설명하는 데 사용되는 상수를 나열합니다. 일부 상수는 함수와 유사하며 정밀도, 소수 자릿수 및/또는 길이에 해당하는 매개 변수를 사용할 수 있습니다. 매개 변수를 바인딩하는 경우 함수 형태 상수를 사용해야 합니다. 형식 비교를 위해서는 표준(함수와 유사하지 않은) 상수가 필요합니다. SQL Server 데이터 형식에 대한 내용은 데이터 형식(Transact-SQL)을 참조하세요. 전체 자릿수, 정밀도 및 길이에 대한 내용은 전체 자릿수, 정밀도 및 길이(Transact-SQL)를 참조하세요.

SQLSRV 상수 SQL Server 데이터 형식
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY binary
SQLSRV_SQLTYPE_BIT bit
SQLSRV_SQLTYPE_CHAR char5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE 날짜4
SQLSRV_SQLTYPE_DATETIME 날짜/시간
SQLSRV_SQLTYPE_DATETIME2 날짜/시간24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL decimal5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) decimal
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE image1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY money
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) nchar
SQLSRV_SQLTYPE_NUMERIC numeric5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) numeric
SQLSRV_SQLTYPE_NVARCHAR nvarchar5
SQLSRV_SQLTYPE_NVARCHAR($charCount) nvarchar
SQLSRV_SQLTYPE_NVARCHAR('max') nvarchar(MAX)
SQLSRV_SQLTYPE_NTEXT ntext2
SQLSRV_SQLTYPE_REAL real
SQLSRV_SQLTYPE_SMALLDATETIME smalldatetime
SQLSRV_SQLTYPE_SMALLINT smallint
SQLSRV_SQLTYPE_SMALLMONEY smallmoney
SQLSRV_SQLTYPE_TEXT text3
SQLSRV_SQLTYPE_TIME time4
SQLSRV_SQLTYPE_TIMESTAMP timestamp
SQLSRV_SQLTYPE_TINYINT tinyint
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER uniqueidentifier
SQLSRV_SQLTYPE_UDT UDT
SQLSRV_SQLTYPE_VARBINARY varbinary5
SQLSRV_SQLTYPE_VARBINARY($byteCount) varbinary
SQLSRV_SQLTYPE_VARBINARY('max') varbinary(MAX)
SQLSRV_SQLTYPE_VARCHAR varchar5
SQLSRV_SQLTYPE_VARCHAR($charCount) varchar
SQLSRV_SQLTYPE_VARCHAR('max') varchar(MAX)
SQLSRV_SQLTYPE_XML xml
  1. varbinary(max) 형식에 매핑되는 레거시 형식입니다.

  2. 최신 nvarchar 형식에 매핑되는 레거시 형식입니다.

  3. 최신 varchar 형식에 매핑되는 레거시 형식입니다.

  4. 이 유형에 대한 지원은 Microsoft Drivers for PHP for SQL Server 버전 1.1에 추가되었습니다.

  5. 이러한 상수는 형식 비교 연산에서 사용해야 하며 함수 유형 상수를 유사한 구문으로 바꾸지 않습니다. 매개 변수를 바인딩하는 경우 함수 형태 상수를 사용해야 합니다.

다음 테이블은 매개 변수를 허용하는 SQLTYPE 상수와 매개 변수에 허용되는 값 범위를 나열합니다.

SQLTYPE 매개 변수 매개 변수에 허용되는 범위
SQLSRV_SQLTYPE_CHAR,

SQLSRV_SQLTYPE_VARCHAR
charCount 1 - 8000
SQLSRV_SQLTYPE_NCHAR,

SQLSRV_SQLTYPE_NVARCHAR
charCount 1 - 4000
SQLSRV_SQLTYPE_BINARY,

SQLSRV_SQLTYPE_VARBINARY
byteCount 1 - 8000
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
자릿수 1 - 38
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
scale 1 - 정밀도

트랜잭션 격리 수준 상수

sqlsrv_connect와 함께 사용되는 TransactionIsolation 키에는 다음 상수 중 하나를 사용할 수 있습니다.

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

커서 및 스크롤 상수

다음 상수는 결과 집합에서 사용할 수 있는 커서 종류를 지정합니다.

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

다음 상수는 결과 집합에서 선택할 행을 지정합니다.

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

이러한 상수 사용에 대한 내용은 커서 유형 지정 및 행 선택을 참조하세요.

참고 항목

SQLSRV 드라이버 API 참조