はじめに
PDO_SQLSRV は、PHP Data Objects (PDO) インターフェイス を実装したドライバです。 PHP から、MS SQL Server (SQL Server 2005 以降) および SQL Azure データベースにアクセスできるようになります。
インストール手順
PDO_SQLSRV 拡張モジュールを有効にするには、適切な DLL ファイルを PHP
の拡張モジュール用ディレクトリに配置して、php.ini
ファイルにエントリを追加します。
PDO_SQLSRV をダウンロードすると、その中には 8 個のドライバファイルが入っています。
その中の 4 個のファイルが PDO サポート用のファイルです。非スレッドセーフな PHP
(PHP 5.3) を実行している場合は php_pdo_sqlsrv_53_nts.dll を使います
(ウェブサーバーとして IIS を使っている場合は、非スレッドセーフバージョンを使う必要があります)。
スレッドセーフな PHP を実行している場合は php_pdo_sqlsrv_53_ts.dll を使います。
同様に、PHP 5.4 の場合についても、非スレッドセーフなのかスレッドセーフなのかによって
php_pdo_sqlsrv_54_nts.dll あるいは php_pdo_sqlsrv_54_ts.dll のいずれかを使います。
最新版のドライバのダウンロードは » SQLSRV download のページでできます。PHP 5.2 を使っている場合や VC6 でコンパイルしたバージョンが必要な場合は、 バージョン 2.0 系を » SQLSRV 2.0 download からダウンロードして使いましょう。 ドライバのソースコードは、 » 公開リポジトリ でホストされています。
システム要件に関する詳細は » SQLSRV System Requirements を参照ください。
PDO_SQLSRV 拡張モジュールは Windows 版の PHP でしか使えません。 Linux の場合は ODBC および » Microsoft's SQL Server ODBC Driver for Linux を参照ください。
定義済み定数
このドライバでは以下の定数が定義されて
います。これは拡張モジュールが PHP に組み込まれているか、実行時に動的にロード
されている場合のみ使用可能です。さらに、これらのドライバ固有の定数は
そのドライバを使用している場合にのみ使用されます。
あるドライバ固有の属性を別のドライバで使うと、予期せぬ結果を引き起こします。
もし複数のドライバを使用しているコードを実行している場合、
PDO::getAttribute() で PDO::ATTR_DRIVER_NAME
属性を使用することで、使用中のドライバ名を調べることが可能です。
PDO::SQLSRV_TXN_READ_UNCOMMITTED
(int)- この定数は、SQLSRV DSN のキー TransactionIsolation で使えます。 この接続のトランザクション隔離レベルを、Read Uncommitted に設定します。
PDO::SQLSRV_TXN_READ_COMMITTED
(int)- この定数は、SQLSRV DSN のキー TransactionIsolation で使えます。 この接続のトランザクション隔離レベルを、Read Committed に設定します。
PDO::SQLSRV_TXN_REPEATABLE_READ
(int)- この定数は、SQLSRV DSN のキー TransactionIsolation で使えます。 この接続のトランザクション隔離レベルを、Repeateable Read に設定します。
PDO::SQLSRV_TXN_SNAPSHOT
(int)- この定数は、SQLSRV DSN のキー TransactionIsolation で使えます。 この接続のトランザクション隔離レベルを、Snapshot に設定します。
PDO::SQLSRV_TXN_SERIALIZABLE
(int)- この定数は、SQLSRV DSN のキー TransactionIsolation で使えます。 この接続のトランザクション隔離レベルを、Serializable に設定します。
PDO::SQLSRV_ENCODING_BINARY
(int)- サーバーとの間のデータの送受信を生のバイトストリームで行い、 符号化や変換を一切しないように指示します。 この定数は、 PDOStatement::setAttribute、PDO::prepare、PDOStatement::bindColumn および PDOStatement::bindParam に渡せます。
PDO::SQLSRV_ENCODING_SYSTEM
(int)- サーバーとの間のデータの送受信を 8 ビット文字として行い、 システムに設定された Windows のロケールのコードページを利用します。 このコードページにマップできない文字はすべて、シングルバイトのクエスチョンマークに置き換えられます。 この定数は、PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、 PDOStatement::bindColumn および PDOStatement::bindParam に渡せます。
PDO::SQLSRV_ENCODING_UTF8
(int)- サーバーとの間のデータの送受信を UTF-8 エンコーディングで行います。 これが、デフォルトの符号化方式です。この定数は、 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、 PDOStatement::bindColumn および PDOStatement::bindParam に渡せます。
PDO::SQLSRV_ENCODING_DEFAULT
(int)- サーバーとの間のデータの送受信を、接続時に指定した PDO::SQLSRV_ENCODING_SYSTEM に従って行います。プリペアドステートメントの中で指定された場合は、 その接続で設定されているエンコーディングを利用します。この定数は、 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、 PDOStatement::bindColumn および PDOStatement::bindParam に渡せます。
PDO::SQLSRV_ATTR_QUERY_TIMEOUT
(int)- 非負の整数で、タイムアウト秒数を指定します。ゼロがデフォルトで、これはタイムアウトしないことを意味します。 この定数は、PDOStatement::setAttribute、PDO::setAttribute および PDO::prepare に渡せます。
PDO::SQLSRV_ATTR_DIRECT_QUERY
(int)- クエリを直接実行し、準備しないことを指示します。 この定数は、PDO::setAttribute および PDO::prepare に渡せます。詳細な情報は » Direct and Prepared Statement Execution を参照ください。
目次
- PDO_SQLSRV DSN — MS SQL Server および SQL Azure データベースに接続する