Типы данных PHP по умолчанию
При получении данных с сервера драйверы Майкрософт для PHP для SQL Server преобразовывают данные в тип данных 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 | Нет данных |
десятичное | Строка | 8-битовый символ1 |
с плавающей запятой | Тип с плавающей запятой | 8-битовый символ1 |
география | STREAM | Двоичная3 |
geometry | STREAM | Двоичная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 | Тип с плавающей запятой | 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 |
Данные возвращаются в виде 8-битовых символов, как указано в кодовой странице языкового стандарта Windows, установленного в системе. Для всех многобайтовых символов или символов, не соответствующих этой кодовой странице, подставляется однобайтовый символ вопросительного знака (?).
Если для извлечения данных, имеющих тип потока PHP по умолчанию, используется sqlsrv_fetch_array или sqlsrv_fetch_object, данные возвращаются в виде строки с кодировкой потока. Например, при извлечении данных двоичного типа SQL Server с использованием sqlsrv_fetch_array типом возвращаемого значения по умолчанию будет двоичная строка.
Данные возвращаются в виде потока необработанных байтов с сервера без применения кодировки или преобразования.
Данные типов даты и времени можно извлекать в виде строк. Дополнительные сведения см. в статье Практическое руководство. Получение типа даты и времени в виде строк с помощью драйвера SQLSRV.
Это устаревший тип, соответствующий типу varbinary(max).
Это устаревший тип, соответствующий типу nvarchar(max).
sql_variant не поддерживается для двунаправленных или выходных параметров.
Это устаревший тип, соответствующий типу varchar(max).
Идентификаторы 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 и существующие вне столбцов (например, табличное значение параметров), не поддерживаются в драйверах Майкрософт для PHP для SQL Server. В следующей таблице приведены сводные данные о поддержке PHP в новых функциях SQL Server 2008.
Функция | Поддержка PHP |
---|---|
Возвращающий табличное значение параметр | No |
Разреженные столбцы | Частично |
Сжатие NULL-битов | Да |
Определяемые пользователем типы данных больших значений CLR (UDT) | Да |
Имя субъекта-службы | No |
MERGE | Да |
FILESTREAM | Частично |
Частичная поддержка типа означает, что вы не можете программно запросить тип столбца.
См. также
Константы (драйверы Microsoft Drivers for PHP for SQL Server)