既定の PHP データ型
サーバーからデータを取得するとき、ユーザーが PHP データ型を指定しなければ、SQL Server Driver for PHP によってデータが既定の PHP データ型に変換されます。次の表に、SQL Server データ型 (サーバーから取得されるデータ型)、既定の PHP データ型 (データ変換後のデータ型)、およびストリームと文字列の既定のエンコードを示します。サーバーからのデータの取得時にデータ型を指定する方法の詳細については、「PHP データ型を指定する方法」を参照してください。
SQL Server 型 | 既定の PHP 型 | 既定のエンコード |
---|---|---|
bigint |
String |
8 ビット文字1 |
binary |
Stream2 |
バイナリ3 |
bit |
Integer |
8 ビット文字1 |
char |
String |
8 ビット文字1 |
datetime8 |
Datetime |
該当なし |
decimal |
String |
8 ビット文字1 |
float |
Float |
8 ビット文字1 |
image4 |
Stream2 |
バイナリ3 |
int |
Integer |
8 ビット文字1 |
money |
String |
8 ビット文字1 |
nchar |
String |
8 ビット文字1 |
numeric |
String |
8 ビット文字1 |
nvarchar |
String |
8 ビット文字1 |
nvarchar(MAX) |
Stream2 |
8 ビット文字1 |
ntext5 |
Stream2 |
8 ビット文字1 |
real |
Float |
8 ビット文字1 |
smalldatetime |
Datetime |
8 ビット文字1 |
smallint |
Integer |
8 ビット文字1 |
smallmoney |
String |
8 ビット文字1 |
sql_variant |
String |
8 ビット文字1 |
text6 |
Stream2 |
8 ビット文字1 |
timestamp |
String |
8 ビット文字1 |
tinyint |
Integer |
8 ビット文字1 |
UDT |
Stream2 |
バイナリ3 |
uniqueidentifier |
String7 |
8 ビット文字1 |
varbinary |
Stream2 |
バイナリ3 |
varbinary(MAX) |
Stream2 |
バイナリ3 |
varchar |
String |
8 ビット文字1 |
varchar(MAX) |
Stream2 |
8 ビット文字1 |
variant |
サポートなし |
サポートなし |
xml |
Stream2 |
8 ビット文字1 |
次の表は、SQL Server 2008 のデータ型をサポートするために、SQL Server Driver for PHP Version 1.1 で追加された型の一覧です。
SQL Server 型 | 既定の PHP 型 | 既定のエンコード |
---|---|---|
date8 |
Datetime |
該当なし |
time8 |
Datetime |
該当なし |
datetime28 |
Datetime |
該当なし |
datetimeoffset8 |
Datetime |
該当なし |
geography |
STREAM |
バイナリ3 |
geometry |
STREAM |
バイナリ3 |
- システムで設定された Windows ロケールのコード ページでの指定に従って、データが 8 ビット文字として返されます。マルチバイト文字またはこのコード ページにマップされていない文字は、1 バイトの疑問符 (?) 文字に置き換えられます。
- sqlsrv_fetch_array または sqlsrv_fetch_object を使用して既定の PHP 型 Stream のデータを取得すると、データはストリームと同じエンコードの文字列として返されます。たとえば、sqlsrv_fetch_array を使用して SQL Server binary 型を取得した場合、既定の戻り値の型は binary string になります。
- エンコードまたは変換は実行されず、データが生のバイト ストリームとしてサーバーから返されます。
- これは varbinary(max) 型にマップされるレガシ型です。
- これは nvarchar(max) 型にマップされるレガシ型です。
- これは 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 の新しいデータ型 (テーブル値パラメーターなど) は、SQL Server Driver for PHP Version 1.1 ではサポートされていません。次の表は、SQL Server 2008 の新機能での PHP のサポートをまとめたものです。
機能 | PHP のサポート |
---|---|
テーブル値パラメーター |
いいえ |
スパース列 |
部分的 |
NULL ビット比較 |
はい |
大きな CLR ユーザー定義型 (UDT) |
はい |
サービス プリンシパル名 |
いいえ |
MERGE |
はい |
FILESTREAM |
部分的 |
部分的な型サポートとは、列の型に対するクエリをプログラムによる処理では実行できないことを意味します。