XC. 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_ALL PHP 4.1.0 以降で使用可能です。
mssql.textsize "-1" PHP_INI_ALL  
mssql.textlimit "-1" PHP_INI_ALL  
mssql.batchsize "0" PHP_INI_ALL PHP 4.0.4 以降で使用可能です。
mssql.datetimeconvert "1" PHP_INI_ALL PHP 4.2.0 以降で使用可能です。
mssql.secure_connection "0" PHP_INI_SYSTEM PHP 4.3.0 以降で使用可能です。
mssql.max_procs "-1" PHP_INI_ALL PHP 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 データベースを選択する