定数 (Microsoft Drivers for PHP for SQL Server)
このトピックでは、 Microsoft SQL Server 用 Drivers for PHPで定義される定数について説明します。
PDO_SQLSRV ドライバー定数
PDO Web サイトに記載されている定数は、Microsoft SQL Server 用 Drivers for PHP で有効です。
次に、PDO_SQLSRV ドライバーの Microsoft 固有の定数について説明します。
トランザクション分離レベルの定数
PDO::__construct と共に使用される TransactionIsolationキーは、次のいずれかの定数を受け入れます。
PDO::SQLSRV_TXN_READ_UNCOMMITTED
PDO::SQLSRV_TXN_READ_COMMITTED
PDO::SQLSRV_TXN_REPEATABLE_READ
PDO::SQLSRV_TXN_SNAPSHOT
PDO::SQLSRV_TXN_SERIALIZABLE
TransactionIsolation キーの詳細については、「 Connection Options」を参照してください。
エンコード定数
The PDO::SQLSRV_ATTR_ENCODING 属性は、PDOStatement::setAttribute、PDO::setAttribute, PDO::prepare、PDOStatement::bindColumn、PDOStatement::bindParam に渡すことができます。
PDO::SQLSRV_ATTR_ENCODING に渡すために使用できる値は次のとおりです。
PDO_SQLSRV ドライバー定数 | 説明 |
---|---|
PDO::SQLSRV_ENCODING_BINARY | データは、エンコードや変換されていない、サーバーからの未加工のバイト ストリームです。 PDO::setAttribute では無効です。 |
PDO::SQLSRV_ENCODING_SYSTEM | データは、システムで設定された Windows ロケールのコード ページに指定されているとおりの 8 ビット文字です。 任意のマルチバイト文字またはこのコード ページにマップされていない文字は、1 バイトの疑問符 (?) 文字に置き換えられます。 |
PDO::SQLSRV_ENCODING_UTF8 | データは UTF-8 エンコードです。 これが既定のエンコードです。 |
PDO::SQLSRV_ENCODING_DEFAULT | 接続時に指定した場合は、PDO::SQLSRV_ENCODING_SYSTEM を使用します。 準備ステートメントで指定した場合は、接続のエンコードを使用します。 |
クエリのタイムアウト
PDO::SQLSRV_ATTR_QUERY_TIMEOUT 属性は、タイムアウト時間を秒単位で表す任意の負以外の整数です。 既定値はゼロ (0) で、タイムアウトがないことを意味します。
PDO::SQLSRV_ATTR_QUERY_TIMEOUT 属性と共に、PDOStatement::setAttribute、PDO::setAttribute、および PDO::prepare を指定できます。
直接または準備実行
PDO::SQLSRV_ATTR_DIRECT_QUERY 属性を使用して、直接クエリの実行または準備済みステートメントの実行を選択できます。 PDO::SQLSRV_ATTR_DIRECT_QUERY は、PDO::prepare または PDO::setAttribute で設定できます。 PDO::SQLSRV_ATTR_DIRECT_QUERY の詳細については、「PDO_SQLSRV ドライバーでの直接ステートメントの実行と準備されたステートメントの実行」を参照してください。
数値フェッチの処理
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE 属性を使用して、数値の SQL 型 (bit、integer、smallint、tinyint、float、および real) の列からの数値フェッチを処理できます。 PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE が true に設定されている場合、integer 列の結果は int として表されますが、SQL float と real は float として表されます。 この属性は PDOStatement::setAttribute を使用して設定できます。
PDO::SQLSRV_ATTR_FORMAT_DECIMALS 属性と PDO::SQLSRV_ATTR_DECIMAL_PLACES 属性を使用して、既定の 10 進形式の動作を変更できます。 これらの属性の動作は、SQLSRV 側の対応するオプション (FormatDecimals と DecimalPlaces) と同じですが、書式設定では出力パラメーターがサポートされていません。 これらの属性は、接続レベルまたはステートメント レベルで PDO::setAttribute または PDOStatement::setAttribute を使用して設定できますが、ステートメント属性を使用すると、対応する接続属性はオーバーライドされます。 詳細については、「10 進数文字列と金額の書式設定 (PDO_SQLSRV ドライバー)」をご覧ください。
日付と時刻のフェッチの処理
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE では、日付と時刻の型を PHP DateTime オブジェクトとして取得するかどうかを指定します。 false のままにすると、文字列として返すことが既定の動作となります。 この属性は、接続レベルまたはステートメント レベルで PDO::setAttribute または PDOStatement::setAttribute を使用して設定できますが、ステートメント属性を使用すると、対応する接続属性はオーバーライドされます。 詳細については、「PDO_SQLSRV ドライバーを使用して日付と時刻の型を PHP DateTime オブジェクトとして取得する」を参照してください。
SQLSRV ドライバーの定数
次のセクションでは、SQLSRV ドライバーが使用する定数を一覧表示します。
ERR 定数
次の表に、sqlsrv_errors がエラー、警告、または両方を返す場合に、指定するために使用される定数を示します。
[値] | 説明 |
---|---|
SQLSRV_ERR_ALL | sqlsrv 関数の最後の呼び出しで生成されたエラーと警告が返されます。 これが既定値です。 |
SQLSRV_ERR_ERRORS | sqlsrv 関数の最後の呼び出しで生成されたエラーが返されます。 |
SQLSRV_ERR_WARNINGS | sqlsrv 関数の最後の呼び出しで生成された警告が返されます。 |
FETCH 定数
次の表に、 sqlsrv_fetch_arrayによって返される配列の種類を指定するために使用される定数を示します。
SQLSRV 定数 | 説明 |
---|---|
SQLSRV_FETCH_ASSOC | sqlsrv_fetch_array は、次のデータ行を連想配列として返します。 |
SQLSRV_FETCH_BOTH | sqlsrv_fetch_array は、次のデータ行を、数値キーと連想キーを持つ配列として返します。 これが既定値です。 |
SQLSRV_FETCH_NUMERIC | sqlsrv_fetch_array は、次のデータ行を数値インデックス配列として返します。 |
ログ記録の定数
このセクションでは、 sqlsrv_configureでログ記録の設定を変更するために使用する定数を一覧表示します。 ログ記録アクティビティの詳細については、「 Logging Activity」を参照してください。
次の表に、 LogSubsystems 設定の値として使用できる定数を示します。
SQLSRV 定数 (かっこ内と同等の整数) | 説明 |
---|---|
SQLSRV_LOG_SYSTEM_ALL (-1) | すべてのサブシステムのログ記録をオンにします。 |
SQLSRV_LOG_SYSTEM_CONN (2) | 接続アクティビティのログ記録をオンにします。 |
SQLSRV_LOG_SYSTEM_INIT (1) | 初期化アクティビティのログ記録をオンにします。 |
SQLSRV_LOG_SYSTEM_OFF (0) | ログ記録をオフにします。 |
SQLSRV_LOG_SYSTEM_STMT (4) | ステートメント アクティビティのログ記録をオンにします。 |
SQLSRV_LOG_SYSTEM_UTIL (8) | エラー関数アクティビティ (handle_error や handle_warning など) のログ記録をオンにします。 |
次の表に、 LogSeverity 設定の値として使用できる定数を示します。
SQLSRV 定数 (かっこ内と同等の整数) | 説明 |
---|---|
SQLSRV_LOG_SEVERITY_ALL (-1) | エラー、警告、および通知をログ記録することを指定します。 |
SQLSRV_LOG_SEVERITY_ERROR (1) | エラーをログ記録することを指定します。 |
SQLSRV_LOG_SEVERITY_NOTICE (4) | 通知をログ記録することを指定します。 |
SQLSRV_LOG_SEVERITY_WARNING (2) | 警告をログ記録することを指定します。 |
null 許容型の定数
次の表に、この情報が使用できない場合に、列で null が使用可能かどうかを判断するために使用できる定数を示します。 sqlsrv_field_metadata によって返される null 許容 キーの値を比較して、列で null が使用可能かどうかを判断できます。
SQLSRV 定数 (かっこ内と同等の整数) | 説明 |
---|---|
SQLSRV_NULLABLE_YES (0) | 列で NULL 値が許容されます。 |
SQLSRV_NULLABLE_NO (1) | この列では null 値は使用できません。 |
SQLSRV_NULLABLE_UNKNOWN (2) | 列で null 値が使用できるかどうかが不明です。 |
PARAM 定数
次の表に、 sqlsrv_query または sqlsrv_prepareを呼び出すときにパラメーターの方向を指定する定数を示します。
SQLSRV 定数 | 説明 |
---|---|
SQLSRV_PARAM_IN | 入力パラメーターを示します。 |
SQLSRV_PARAM_INOUT | 双方向のパラメーターを示します。 |
SQLSRV_PARAM_OUT | 出力パラメーターを示します。 |
PHPTYPE 定数
次の表に、PHP データ型の記述に使用される定数を示します。 PHP データ型の詳細については、PHP の型に関するページを参照してください。
SQLSRV 定数 | PHP データ型 |
---|---|
SQLSRV_PHPTYPE_INT | Integer |
SQLSRV_PHPTYPE_DATETIME | Datetime |
SQLSRV_PHPTYPE_FLOAT | Float |
SQLSRV_PHPTYPE_STREAM($encoding1) | ストリーム |
SQLSRV_PHPTYPE_STRING($encoding1) | String |
- SQLSRV_PHPTYPE_STREAM と SQLSRV_PHPTYPE_STRING は、ストリームのエンコードを指定するパラメーターを受け入れます。 次の表には、受け入れ可能なパラメーターの SQLSRV 定数と、対応するエンコードの説明が含まれています。
SQLSRV 定数 | 説明 |
---|---|
SQLSRV_ENC_BINARY | データは、エンコードまたは変換されず、生のバイト ストリームとしてサーバーから返されます。 |
SQLSRV_ENC_CHAR | データは、システムに設定された Windows ロケールのコード ページに指定されているとおりに、8 ビット文字で返されます。 任意のマルチバイト文字またはこのコード ページにマップされていない文字は、1 バイトの疑問符 (?) 文字に置き換えられます。 これが既定のエンコードです。 |
"UTF-8" | データは UTF-8 エンコードで返されます。 この定数は、 Microsoft SQL Server 用 Drivers for PHPのバージョン 1.1 で追加されました。 UTF-8 のサポートの詳細については、「方法: 組み込みの UTF-8 サポートを使用した UTF-8 データの送信と取得」を参照してください。 |
Note
SQLSRV_PHPTYPE_STREAM または SQLSRV_PHPTYPE_STRING を使用する場合、エンコードを指定する必要があります。 パラメーターを省略すると、エラーが返されます。
これらの定数の詳細については、「 方法: PHP データ型を指定する」および「 方法: SQLSRV ドライバーを使用したストリームとしての文字データの取得」を参照してください。
SQLTYPE 定数
次の表に、SQL Server データ型の記述に使用される定数を示します。 一部の定数は関数に似ており、精度、スケール、長さに対応するパラメーターを受け取る場合があります。 パラメーターをバインドするときは、関数に似た定数を使用する必要があります。 型の比較には、標準の (関数に似ていない) 定数が必要です。 SQL Server データ型の詳細については、「データ型 (Transact-SQL)」を参照してください。有効桁数、小数点以下桁数、長さの詳細については、「有効桁数、小数点以下桁数、長さ (Transact-SQL)」を参照してください。
SQLSRV 定数 | SQL Server のデータ型 |
---|---|
SQLSRV_SQLTYPE_BIGINT | bigint |
SQLSRV_SQLTYPE_BINARY | binary |
SQLSRV_SQLTYPE_BIT | bit |
SQLSRV_SQLTYPE_CHAR | char5 |
SQLSRV_SQLTYPE_CHAR($charCount) | char |
SQLSRV_SQLTYPE_DATE | date4 |
SQLSRV_SQLTYPE_DATETIME | DATETIME |
SQLSRV_SQLTYPE_DATETIME2 | datetime24 |
SQLSRV_SQLTYPE_DATETIMEOFFSET | datetimeoffset4 |
SQLSRV_SQLTYPE_DECIMAL | decimal5 |
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) | decimal |
SQLSRV_SQLTYPE_FLOAT | float |
SQLSRV_SQLTYPE_IMAGE | image1 |
SQLSRV_SQLTYPE_INT | INT |
SQLSRV_SQLTYPE_MONEY | money |
SQLSRV_SQLTYPE_NCHAR | nchar5 |
SQLSRV_SQLTYPE_NCHAR($charCount) | nchar |
SQLSRV_SQLTYPE_NUMERIC | numeric5 |
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) | numeric |
SQLSRV_SQLTYPE_NVARCHAR | nvarchar5 |
SQLSRV_SQLTYPE_NVARCHAR($charCount) | nvarchar |
SQLSRV_SQLTYPE_NVARCHAR('max') | nvarchar(MAX) |
SQLSRV_SQLTYPE_NTEXT | ntext2 |
SQLSRV_SQLTYPE_REAL | real |
SQLSRV_SQLTYPE_SMALLDATETIME | smalldatetime |
SQLSRV_SQLTYPE_SMALLINT | smallint |
SQLSRV_SQLTYPE_SMALLMONEY | smallmoney |
SQLSRV_SQLTYPE_TEXT | text3 |
SQLSRV_SQLTYPE_TIME | time4 |
SQLSRV_SQLTYPE_TIMESTAMP | timestamp |
SQLSRV_SQLTYPE_TINYINT | tinyint |
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER | UNIQUEIDENTIFIER |
SQLSRV_SQLTYPE_UDT | UDT |
SQLSRV_SQLTYPE_VARBINARY | varbinary5 |
SQLSRV_SQLTYPE_VARBINARY($byteCount) | varbinary |
SQLSRV_SQLTYPE_VARBINARY('max') | varbinary (max) |
SQLSRV_SQLTYPE_VARCHAR | varchar5 |
SQLSRV_SQLTYPE_VARCHAR($charCount) | varchar |
SQLSRV_SQLTYPE_VARCHAR('max') | varchar(MAX) |
SQLSRV_SQLTYPE_XML | xml |
これは、varbinary(max) 型にマップされる従来の型です。
これは、新しい nvarchar 型にマップされる従来の型です。
これは、新しい varchar 型にマップされる従来の型です。
この型のサポートは、 Microsoft SQL Server 用 Drivers for PHPのバージョン 1.1 で追加されました。
これらの定数は、型比較演算で使用するようにします。関数に似た定数は同様の構文に置き換えないでください。 バインド パラメーターの場合は、関数に似た定数を使用するようにします。
次の表に、パラメーターを受け入れる SQLTYPE 定数とパラメーターに許容される値の範囲を示します。
SQLTYPE | パラメーター | パラメーターの許容範囲 |
---|---|---|
SQLSRV_SQLTYPE_CHAR, SQLSRV_SQLTYPE_VARCHAR |
charCount | 1 - 8000 |
SQLSRV_SQLTYPE_NCHAR, SQLSRV_SQLTYPE_NVARCHAR |
charCount | 1 - 4000 |
SQLSRV_SQLTYPE_BINARY, SQLSRV_SQLTYPE_VARBINARY |
byteCount | 1 - 8000 |
SQLSRV_SQLTYPE_DECIMAL, SQLSRV_SQLTYPE_NUMERIC |
精度 | 1 - 38 |
SQLSRV_SQLTYPE_DECIMAL, SQLSRV_SQLTYPE_NUMERIC |
scale | 1 - 有効桁数 |
トランザクション分離レベルの定数
sqlsrv_connect と共に使用される TransactionIsolationキーは、次のいずれかの定数を受け入れます。
SQLSRV_TXN_READ_UNCOMMITTED
SQLSRV_TXN_READ_COMMITTED
SQLSRV_TXN_REPEATABLE_READ
SQLSRV_TXN_SNAPSHOT
SQLSRV_TXN_SERIALIZABLE
カーソルとスクロールの定数
次の定数は、結果セットで使用できるカーソルの種類を指定します。
SQLSRV_CURSOR_FORWARD
SQLSRV_CURSOR_STATIC
SQLSRV_CURSOR_DYNAMIC
SQLSRV_CURSOR_KEYSET
SQLSRV_CURSOR_CLIENT_BUFFERED
次の定数は、結果セットに選択する行を指定します。
SQLSRV_SCROLL_NEXT
SQLSRV_SCROLL_PRIOR
SQLSRV_SCROLL_FIRST
SQLSRV_SCROLL_LAST
SQLSRV_SCROLL_ABSOLUTE
SQLSRV_SCROLL_RELATIVE
これらの定数の使用の詳細については、「 Specifying a Cursor Type and Selecting Rows」を参照してください。