LXXXV. Microsoft SQL Server 関数

導入

以下の関数によりMS SQL Server データベースにアクセス可能となります。

要件

Win32 プラットフォームでの要件

この拡張モジュールは、PHP がインストールされているシステムに MS SQL クライアントツールのインストールを要します。クライアントツールは、 MS SQL Server CD か、またはサーバの \winnt\system32 から ntwdblib.dll を PHP システムの \winnt\system32 にコピーすることによりインストール可能です。 ntwdblib.dll のコピーではアクセスのみが可能で、 クライアントの設定には全てのツールのインストールが必要です。

Unix/Linux プラットフォームでの要件

MSSQL 拡張モジュールを Unix/Linux で使用するには、まず最初に FreeTDS ライブラリをビルドしてインストールする必要があります。ソースコードや インストール手順は FreeTDS のホームページ http://www.freetds.org/ にあります。

注意: Windows では、Microsoft の DBLIB が使用されます。カラム名を返す関数は、 DBLIB の dbcolname() 関数を使用しています。 DBLIB は SQL Server 6.x 用に開発されており、識別子の最大長は 30 です。 そのため、カラム名は最大 30 文字までとなります。FreeTDS を使用する プラットフォーム(Linux)ではこの問題は発生しません。

インストール手順

MSSQL 拡張モジュールは、extension=php_mssql.dll を php.ini に追加する ことにより、利用可能となります。

これらの関数を使用するには、 --with-mssql[=DIR] を指定して PHP を コンパイルする必要があります。DIR は FreeTDS のインストール先です。 また、FreeTDS は --enable-msdblib を指定してコンパイルする必要があります。

実行時設定

php.ini の設定により動作が変化します。

表 1. MS SQL Server 設定オプション

名前デフォルト変更の可否変更履歴
mssql.allow_persistent"1"PHP_INI_SYSTEM 
mssql.max_persistent"-1"PHP_INI_SYSTEM 
mssql.max_links"-1"PHP_INI_SYSTEM 
mssql.min_error_severity"10"PHP_INI_ALL 
mssql.min_message_severity"10"PHP_INI_ALL 
mssql.compatability_mode"0"PHP_INI_ALL 
mssql.connect_timeout"5"PHP_INI_ALL 
mssql.timeout"60"PHP_INI_ALLPHP 4.1.0 以降で使用可能です。
mssql.textsize"-1"PHP_INI_ALL 
mssql.textlimit"-1"PHP_INI_ALL 
mssql.batchsize"0"PHP_INI_ALLPHP 4.0.4 以降で使用可能です。
mssql.datetimeconvert"1"PHP_INI_ALLPHP 4.2.0 以降で使用可能です。
mssql.secure_connection"0"PHP_INI_SYSTEMPHP 4.3.0 以降で使用可能です。
mssql.max_procs"-1"PHP_INI_ALLPHP 4.3.0 以降で使用可能です。
PHP_INI_* 定数の詳細および定義については 付録G を参照してください。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

MSSQL_ASSOC (integer)

MSSQL_NUM (integer)

MSSQL_BOTH (integer)

SQLTEXT (integer)

SQLVARCHAR (integer)

SQLCHAR (integer)

SQLINT1 (integer)

SQLINT2 (integer)

SQLINT4 (integer)

SQLBIT (integer)

SQLFLT8 (integer)

目次
mssql_bind --  ストアドプロシージャまたはリモートストアドプロシージャへ パラメータを追加する
mssql_close -- MS SQL Server への接続を閉じる
mssql_connect -- MS SQL サーバ接続をオープンする
mssql_data_seek -- 内部行ポインタを移動する
mssql_execute --  MS SQL サーバデータベースでストアドプロシージャを実行する
mssql_fetch_array --  連想配列・数値添字配列・あるいはその両方で結果の行を取得する
mssql_fetch_assoc --  result_id で指定した結果集合でカレントの行を連想配列として返す
mssql_fetch_batch --  レコードの次のバッチを返す
mssql_fetch_field -- フィールド情報を取得する
mssql_fetch_object -- オブジェクトとして行を取得する
mssql_fetch_row -- 配列として行を取得する
mssql_field_length -- フィールド長を得る
mssql_field_name -- フィールド名を得る
mssql_field_seek -- 指定したフィールドオフセットに移動する
mssql_field_type -- フィールド型を得る
mssql_free_result -- 結果保持用メモリを解放する
mssql_free_statement -- ステートメントのメモリを開放する
mssql_get_last_message --  サーバーの直近のメッセージを返す (min_message_severityに依存する?)
mssql_guid_string --  16 バイトバイナリ GUID を文字列に変換する
mssql_init --  ストアドプロシージャまたはリモートのストアドプロシージャを 初期化する
mssql_min_error_severity -- エラー判定基準を小さく設定する
mssql_min_message_severity -- メッセージ判定基準を小さく設定する
mssql_next_result -- 次の結果に内部結果ポインタを移動する
mssql_num_fields -- 結果のフィールド数を得る
mssql_num_rows -- 結果の行数を得る
mssql_pconnect -- 持続的 MS SQL 接続をオープンする
mssql_query -- MS SQL クエリを送る
mssql_result -- 結果データを得る
mssql_rows_affected --  クエリにより取得したレコード数を返す
mssql_select_db -- MS SQL データベースを選択する