既定の 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 String 8 ビット文字1
binary Stream2 バイナリ3
bit Integer 8 ビット文字1
char String 8 ビット文字1
date4 Datetime 適用なし
datetime4 Datetime 適用なし
datetime24 Datetime 適用なし
datetimeoffset4 Datetime 適用なし
decimal String 8 ビット文字1
float Float 8 ビット文字1
geography STREAM バイナリ3
geometry STREAM バイナリ3
image5 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
ntext6 Stream2 8 ビット文字1
real Float 8 ビット文字1
smalldatetime Datetime 8 ビット文字1
smallint Integer 8 ビット文字1
smallmoney String 8 ビット文字1
sql_variant7 String 8 ビット文字1
text8 Stream2 8 ビット文字1
time4 Datetime 適用なし
timestamp String 8 ビット文字1
tinyint Integer 8 ビット文字1
UDT Stream2 バイナリ3
UNIQUEIDENTIFIER String9 8 ビット文字1
varbinary Stream2 バイナリ3
varbinary (max) Stream2 バイナリ3
varchar String 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 のサポート
テーブル値パラメーター いいえ
スパース列 Partial
Null ビット圧縮 はい
大きな CLR ユーザー定義型 (UDT) はい
サービス プリンシパル名 いいえ
MERGE はい
FILESTREAM Partial

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

参照

定数 (Microsoft Drivers for PHP for SQL Server)

データ型の変換

PHP の型

データ型 (Transact-SQL)

sqlsrv_field_metadata