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

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

В этом разделе рассматриваются константы, определенные драйверами Майкрософт для PHP для SQL Server.

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

Константы, перечисленные на веб-сайте PDO, действительны в драйверах Майкрософт для PHP для SQL Server.

Ниже описаны константы, характерные для продуктов Майкрософт, в драйвере 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, значения из целочисленного столбца возвращаются как значения типа int, а значения SQL типов float и real — как значения типа float. Этот атрибут можно задать с помощью 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 DateTime с помощью драйвера 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 Дата и время
SQLSRV_PHPTYPE_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 драйверов Майкрософт для PHP для SQL Server. Дополнительные сведения о поддержке 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 двоичный
SQLSRV_SQLTYPE_BIT бит
SQLSRV_SQLTYPE_CHAR char5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE дата4
SQLSRV_SQLTYPE_DATETIME дата и время
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL decimal5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) десятичный
SQLSRV_SQLTYPE_FLOAT с плавающей запятой
SQLSRV_SQLTYPE_IMAGE image1
SQLSRV_SQLTYPE_INT INT
SQLSRV_SQLTYPE_MONEY деньги
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) nchar
SQLSRV_SQLTYPE_NUMERIC numeric5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) числовой
SQLSRV_SQLTYPE_NVARCHAR nvarchar5
SQLSRV_SQLTYPE_NVARCHAR($charCount) nvarchar
SQLSRV_SQLTYPE_NVARCHAR('max') nvarchar(MAX)
SQLSRV_SQLTYPE_NTEXT ntext2
SQLSRV_SQLTYPE_REAL вещественный
SQLSRV_SQLTYPE_SMALLDATETIME smalldatetime
SQLSRV_SQLTYPE_SMALLINT smallint
SQLSRV_SQLTYPE_SMALLMONEY smallmoney
SQLSRV_SQLTYPE_TEXT text3
SQLSRV_SQLTYPE_TIME time4
SQLSRV_SQLTYPE_TIMESTAMP метка времени
SQLSRV_SQLTYPE_TINYINT tinyint
SQLSRV_SQLTYPE_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. Поддержка этого типа была добавлена в версии 1.1 драйверов Майкрософт для PHP для SQL Server.

  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
масштаб 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.