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


типы данных PHP по умолчанию;

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

При извлечении данных с сервера Драйверы Microsoft SQL Server для PHP преобразует данные в тип данных PHP по умолчанию, если пользователь не указал тип данных PHP.

При возврате данных с помощью драйвера PDO_SQLSRV типом данных является int или string.

В оставшейся части этой статьи рассматриваются типы данных по умолчанию при работе с драйвером SQLSRV.

Следующая таблица содержит тип данных SQL Server (тип данных, извлекаемых с сервера), тип данных PHP по умолчанию (тип данных, в который преобразуются данные) и кодировку по умолчанию для потоков и строк. Дополнительные сведения об указании типов данных при извлечении данных с сервера см. в статье How to: Specify PHP Data Types.

Тип SQL Server Тип PHP по умолчанию Кодировка по умолчанию
BIGINT Строка 8-битовый символ1
binary Поток2 Двоичная3
bit Целое число 8-битовый символ1
char Строка 8-битовый символ1
date4 Datetime Неприменимо
datetime4 Datetime Неприменимо
datetime24 Datetime Неприменимо
datetimeoffset4 Datetime Неприменимо
Decimal Строка 8-битовый символ1
FLOAT Float 8-битовый символ1
geography Поток Двоичная3
geometry Поток Двоичная3
image5 Поток2 Двоичная3
INT Целое число 8-битовый символ1
money Строка 8-битовый символ1
nchar Строка 8-битовый символ1
NUMERIC Строка 8-битовый символ1
nvarchar Строка 8-битовый символ1
nvarchar(MAX) Поток2 8-битовый символ1
ntext6 Поток2 8-битовый символ1
real Float 8-битовый символ1
smalldatetime Datetime 8-битовый символ1
smallint Целое число 8-битовый символ1
smallmoney Строка 8-битовый символ1
sql_variant7 Строка 8-битовый символ1
text8 Поток2 8-битовый символ1
time4 Datetime Неприменимо
TIMESTAMP Строка 8-битовый символ1
tinyint Целое число 8-битовый символ1
(UDT) Поток2 Двоичная3
UNIQUEIDENTIFIER String9 8-битовый символ1
varbinary Поток2 Двоичная3
varbinary(MAX) Поток2 Двоичная3
varchar Строка 8-битовый символ1
varchar(MAX) Поток2 8-битовый символ1
Xml Поток2 8-битовый символ1
  1. Данные возвращаются в виде 8-битовых символов, как указано в кодовой странице языкового стандарта Windows, установленного в системе. Для всех многобайтовых символов или символов, не соответствующих этой кодовой странице, подставляется однобайтовый символ вопросительного знака (?).

  2. Если для извлечения данных, имеющих тип потока PHP по умолчанию, используется sqlsrv_fetch_array или sqlsrv_fetch_object, данные возвращаются в виде строки с кодировкой потока. Например, при извлечении данных двоичного типа SQL Server с использованием sqlsrv_fetch_array типом возвращаемого значения по умолчанию будет двоичная строка.

  3. Данные возвращаются в виде потока необработанных байтов с сервера без применения кодировки или преобразования.

  4. Данные типов даты и времени можно извлекать в виде строк. Дополнительные сведения см. в статье Практическое руководство. Получение типа даты и времени в виде строк с помощью драйвера SQLSRV.

  5. Это устаревший тип, соответствующий типу varbinary(max).

  6. Это устаревший тип, соответствующий типу nvarchar(max).

  7. sql_variant не поддерживается для двунаправленных или выходных параметров.

  8. Это устаревший тип, соответствующий типу varchar(max).

  9. Идентификаторы UNIQUEIDENTIFIER — это идентификаторы GUID, представленные следующим регулярным выражением:

    [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-f]{4}-[0-9a-fA-f]{4}-[0-9a-fA-F]{12}

Другие новые типы данных и функции SQL Server 2008

Типы данных, впервые появившиеся в SQL Server 2008 и существующие за пределами столбцов (например, параметры с табличным значением), в Драйверы Microsoft SQL Server для PHP не поддерживаются. В следующей таблице приведены сводные данные о поддержке PHP в новых функциях SQL Server 2008.

Функция Поддержка PHP
Возвращающий табличное значение параметр нет
Разреженные столбцы Partial
Сжатие NULL-битов Да
Определяемые пользователем типы данных больших значений CLR (UDT) Да
Имя субъекта-службы нет
MERGE Да
FILESTREAM Partial

Частичная поддержка типа означает, что вы не можете программно запросить тип столбца.

См. также:

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

Преобразование типов данных

Типы PHP

Типы данных (Transact-SQL)

sqlsrv_field_metadata