Поделиться через


Константы (драйверы Майкрософт для PHP для SQL Server)

Скачать драйвер PHP

Эта статья описывает константы, которые определены Драйверы Microsoft SQL Server для PHP.

Константы драйвера PDO_SQLSRV

Константы, перечисленные на веб-сайте PDO, допустимы в Драйверы Microsoft SQL Server для PHP.

Ниже описаны константы, характерные для продуктов Майкрософт, в драйвере PDO_SQLSRV.

Константы уровня изоляции транзакции

Ключ TransactionIsolation , который используется с PDO::__construct, принимает одну из следующих констант:

  • PDO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Дополнительные сведения о ключе TransactionIsolation см. в статье Connection Options.

Константы кодировки

Атрибут PDO::SQLSRV_ATTR_ENCODING можно передать в параметры PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.

Для передачи в PDO::SQLSRV_ATTR_ENCODING доступны следующие значения:

Константа драйвера PDO_SQLSRV Описание
PDO::SQLSRV_ENCODING_BINARY Данные представляют собой поток необработанных байтов с сервера без применения кодировки или преобразования.

Не является допустимым для PDO::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM Данные представлены 8-битными символами, как указано в кодовой странице языкового стандарта Windows, установленного в системе. Для всех многобайтовых символов или символов, не соответствующих этой кодовой странице, подставляется однобайтовый символ вопросительного знака (?).
PDO::SQLSRV_ENCODING_UTF8 Данные имеют кодировку UTF-8. Эта кодировка используется по умолчанию.
PDO::SQLSRV_ENCODING_DEFAULT Использует PDO::SQLSRV_ENCODING_SYSTEM, если указано во время соединения.

Используйте кодирование соединения, если указано в подготовленной инструкции.

Время ожидания запроса

Атрибут PDO::SQLSRV_ATTR_QUERY_TIMEOUT — это неотрицательное целое число, представляющее время ожидания в секундах. По умолчанию использует нуль (0), означающий отсутствие времени ожидания.

Атрибут PDO::SQLSRV_ATTR_QUERY_TIMEOUT можно указать с PDOStatement::setAttribute, PDO::setAttribute и PDO::prepare.

Прямое или подготовленное выполнение

С помощью атрибута PDO::SQLSRV_ATTR_DIRECT_QUERY можно выбрать выполнение прямого запроса или подготовленной инструкции. PDO::SQLSRV_ATTR_DIRECT_QUERY можно задать с помощью PDO::prepare или PDO::setAttribute. Дополнительные сведения о PDO::SQLSRV_ATTR_DIRECT_QUERY см. в статье Выполнение прямых и подготовленных инструкций в драйвере PDO_SQLSRV.

Обработка числовых выборок

Атрибут PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE можно использовать для обработки числовых выборок из столбцов с числовыми типами SQL (бит, целое число, smallint, tinyint, число с плавающей запятой и real). Если для PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE задано значение true, результаты из столбца целых чисел представляются как целые числа, а числа SQL с плавающей запятой и числа real представлены как числа с плавающей запятой. Этот атрибут можно задать с помощью PDOStatement::setAttribute.

Поведение форматирования десятичного числа по умолчанию можно изменить с помощью атрибутов PDO::SQLSRV_ATTR_FORMAT_DECIMALS и PDO::SQLSRV_ATTR_DECIMAL_PLACES. Поведение этих атрибутов идентично поведению соответствующих параметров на стороне SQLSRV (FormatDecimals и DecimalPlaces), за исключением того, что параметры вывода не поддерживаются для форматирования. Эти атрибуты можно установить как на уровне соединения, так и на уровне оператора с помощью PDO::setAttribute или PDOStatement::setAttribute, но любой атрибут оператора будет переопределять соответствующий атрибут соединения. См. подробнее о форматировании десятичных строк и денежных значений (драйвер PDO_SQLSRV).

Обработка выборок значений даты и времени

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE указывает, нужно ли извлекать типы даты и времени в виде объектов PHP DateTime. Если оставить значение false, по умолчанию они будут возвращаться как строки. Этот атрибут можно установить как на уровне соединения, так и на уровне оператора с помощью PDO::setAttribute или PDOStatement::setAttribute, но атрибут оператора будет переопределять соответствующий атрибут соединения. Дополнительные сведения см. в разделе Как извлечь типы даты и времени в виде объектов даты и времени PHP с помощью драйвера PDO_SQLSRV.

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 возвращает следующую строку данных в виде массива с числовым индексом.

Константы ведения журнала

Этот раздел содержит константы, которые используются для изменения параметров ведения журнала с помощью sqlsrv_configure. Дополнительные сведения об ведении журнала см. в статье Logging Activity.

Следующая таблица содержит константы, которые можно использовать в качестве значения для параметра 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_error и handle_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 или такие сведения недоступны. Можно сравнить значение ключа Nullable , который возвращается sqlsrv_field_metadata для определения состояния поддержки значений 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_STREAM и SQLSRV_PHPTYPE_STRING принимают параметр, который указывает кодировку потока. Следующая таблица содержит константы SQLSRV, которые являются допустимыми параметрами, а также описание соответствующей кодировки.
Константа SQLSRV Описание
SQLSRV_ENC_BINARY Данные возвращаются в виде потока необработанных байтов с сервера без применения кодировки или преобразования.
SQLSRV_ENC_CHAR Данные возвращаются в виде 8-битных символов, как указано в кодовой странице языкового стандарта Windows, установленного в системе. Для всех многобайтовых символов или символов, не соответствующих этой кодовой странице, подставляется однобайтовый символ вопросительного знака (?).

Эта кодировка используется по умолчанию.
"UTF-8" Данные возвращаются с кодировкой UTF-8. Эта константа была добавлена в версии 1.1 Драйверы Microsoft SQL Server для PHP. Дополнительные сведения о поддержке 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 date4
SQLSRV_SQLTYPE_DATETIME DATETIME
SQLSRV_SQLTYPE_DATETIME2 datetime24
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. Поддержка PDO для этого типа была добавлена в версии 1.1 Драйверы Microsoft SQL Server для PHP.

  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 — точность

Константы уровня изоляции транзакции

Ключ TransactionIsolation , который используется с sqlsrv_connect, принимает одну из следующих констант:

  • 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

Сведения об использовании этих констант см. в статье Specifying a Cursor Type and Selecting Rows.

См. также:

Справочник по API для драйвера SQLSRV