Константы (драйверы Microsoft Drivers for PHP for SQL Server)
В этом разделе рассматриваются константы, определенные драйверами Майкрософт для 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 | Description |
---|---|
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 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 | Description |
---|---|
SQLSRV_FETCH_ASSOC | sqlsrv_fetch_array возвращает следующую строку данных в виде ассоциативного массива. |
SQLSRV_FETCH_BOTH | sqlsrv_fetch_array возвращает следующую строку данных в виде массива с числовыми и ассоциативными ключами. Это значение по умолчанию. |
SQLSRV_FETCH_NUMERIC | sqlsrv_fetch_array возвращает следующую строку данных в виде массива с числовым индексом. |
Константы ведения журнала
Этот раздел содержит константы, которые используются для изменения параметров ведения журнала с помощью sqlsrv_configure. Дополнительные сведения об ведении журнала см. в статье Logging Activity.
Следующая таблица содержит константы, которые можно использовать в качестве значения для параметра LogSubsystems :
Константа SQLSRV (целочисленный эквивалент в скобках) | Description |
---|---|
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 (целочисленный эквивалент в скобках) | Description |
---|---|
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 (целочисленный эквивалент в скобках) | Description |
---|---|
SQLSRV_NULLABLE_YES (0) | Этот столбец допускает значение NULL. |
SQLSRV_NULLABLE_NO (1) | Столбец не допускает значение NULL. |
SQLSRV_NULLABLE_UNKNOWN (2) | Неизвестно, допускает ли столбец значение NULL. |
Константы PARAM
Следующий список содержит константы для указания направления параметров при вызове sqlsrv_query или sqlsrv_prepare.
Константа SQLSRV | Description |
---|---|
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 | Тип с плавающей запятой |
SQLSRV_PHPTYPE_STREAM($encoding1) | Stream |
SQLSRV_PHPTYPE_STRING($encoding1) | Строка |
- SQLSRV_PHPTYPE_STREAM и SQLSRV_PHPTYPE_STRING принимают параметр, который указывает кодировку потока. Следующая таблица содержит константы SQLSRV, которые являются допустимыми параметрами, а также описание соответствующей кодировки.
Константа SQLSRV | Description |
---|---|
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 | 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) | десятичное |
SQLSRV_SQLTYPE_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 |
Это устаревший тип, соответствующий типу varbinary(max).
Это устаревший тип, соответствующий более новому типу nvarchar.
Это устаревший тип, соответствующий более новому типу varchar.
Поддержка этого типа была добавлена в версии 1.1 драйверов Майкрософт для PHP для SQL Server.
Эти константы следует использовать в операциях сравнения типов, и они не должны заменять функциональные константы на аналогичный синтаксис. Для привязки параметров следует использовать функциональные константы.
Следующая таблица содержит константы 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.