既定の PHP データ型

PHP ドライバーのダウンロード

サーバーからデータを取得するとき、ユーザーが PHP のデータ型を指定しないと、 Microsoft SQL Server 用 Drivers for PHP はデータを既定の PHP データ型に変換します。

PDO_SQLSRV ドライバーを使用してデータが返される場合、データ型は int または string になります。

このトピックでは、SQLSRV ドライバーを使用するときの既定のデータ型について説明します。

次の表では、SQL Server のデータ型 (サーバーから取得されるデータ型)、PHP の既定のデータ型 (データが変換されるデータ型)、およびストリームと文字列の既定のエンコードを示します。 サーバーからデータを取得するときにデータ型を指定する方法の詳細については、「 How to: Specify PHP Data Types」を参照してください。

SQL Server の種類 PHP の既定の型 既定のエンコード
bigint 文字列 8 ビット文字1
binary Stream2 バイナリ3
ビット 整数 8 ビット文字1
char 文字列 8 ビット文字1
date4 日時 適用なし
datetime4 日時 適用なし
datetime24 日時 適用なし
datetimeoffset4 日時 適用なし
10 進 文字列 8 ビット文字1
float Float 8 ビット文字1
geography STREAM バイナリ3
geometry STREAM バイナリ3
image5 Stream2 バイナリ3
INT 整数 8 ビット文字1
お金 文字列 8 ビット文字1
nchar 文字列 8 ビット文字1
数値 文字列 8 ビット文字1
nvarchar 文字列 8 ビット文字1
nvarchar(MAX) Stream2 8 ビット文字1
ntext6 Stream2 8 ビット文字1
real Float 8 ビット文字1
smalldatetime 日時 8 ビット文字1
smallint 整数 8 ビット文字1
smallmoney 文字列 8 ビット文字1
sql_variant7 文字列 8 ビット文字1
text8 Stream2 8 ビット文字1
time4 日時 適用なし
timestamp 文字列 8 ビット文字1
tinyint 整数 8 ビット文字1
UDT Stream2 バイナリ3
UNIQUEIDENTIFIER String9 8 ビット文字1
varbinary Stream2 バイナリ3
varbinary(MAX) Stream2 バイナリ3
varchar 文字列 8 ビット文字1
varchar(MAX) Stream2 8 ビット文字1
XML Stream2 8 ビット文字1
  1. データは、システムの Windows ロケール設定のコード ページで指定されている 8 ビット文字で返されます。 任意のマルチバイト文字またはこのコード ページにマップされていない文字は、1 バイトの疑問符 (?) 文字に置き換えられます。

  2. sqlsrv_fetch_array または sqlsrv_fetch_object を使用して既定の PHP 型が Stream であるデータを取得する場合、データはストリームと同じエンコードの文字列として返されます。 たとえば、sqlsrv_fetch_array を使用して SQL Server の binary 型を取得した場合、既定の戻り値の型はバイナリ文字列です。

  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 用 Drivers for PHP ではサポートされていません。 次の表は、SQL Server 2008 の新機能の PHP によるサポートをまとめたものです。

機能 PHP のサポート
テーブル値パラメーター いいえ
スパース列 部分的
ヌルビット圧縮 はい
大きな CLR ユーザー定義型 (UDT) はい
サービス プリンシパル名 いいえ
MERGE はい
FILESTREAM 部分的

部分的な型のサポートとは、その列の型をプログラムでクエリできないことを意味します。

参照

定数 (Microsoft Drivers for PHP for SQL Server)

データ型の変換

PHP の型

データ型 (Transact-SQL)

sqlsrv_field_metadata