[PHP-users 35477] PHP5.3系 PEAR::MDB2 経由で SQL Server 接続

aug721 @ gmail.com aug721 @ gmail.com
2011年 2月 2日 (水) 19:50:27 JST


オカムラと申します。

PHP5.3系を使い PEAR::DB もしくは PEAR::MDB2 経由で SQL Server
に接続する方法を教えて下さい。
※PEAR::DBが推奨されていないことは承知しており、ここでは無視させてください

環境としては、

Windows Server 2008 Standard Edition(x86) SP2
IIS7.0
SQL Server 2008

を利用しており、
php-5.3.5-nts-Win32-VC9-x86.zip を FastCGI で動作させています。
従来通り、php_mssql.dll と ntwdblib.dll を使用して SQL Server 2008 に接続しようと
思いましたが、php_mssql.dll が php-5.3.5-nts-Win32-VC9-x86.zip に含まれていないことに気づきました。

情報を探してみるとPHP 5.3以降は、SQLSRV という Microsoft製のドライバが提供されていることが分かりました。
PHP: 導入 - Manual
  http://jp2.php.net/manual/ja/intro.mssql.php

そこで、下記を参考に
 PHP から MS SQL Server を使用する方法 - monoe's blog - Site Home - MSDN Blogs
   http://blogs.msdn.com/b/osamum/archive/2010/09/27/php-ms-sql-server.aspx
php.ini に下記を追記し、
 extension=php_pdo_sqlsrv_53_nts_vc9.dll
 extension=php_sqlsrv_53_nts_vc9.dll
SQLSRV Native API と PDO API が使える状態になりました。

過去の資産である PEAR::DB と PEAR::MDB2 が動くのか確認したところ動きませんでした。

PEAR::MDB2の公式ドキュメントを参照したところ、依存関係として mssql extension という表記があり、
これが php_mssql.dll だと考えており、新たに提供された Microsoft製の SQLSRV には対応していないと
読み取りました。
http://pear.php.net/package/MDB2_Driver_mssql

PHP5.3系を使い SQL Server に接続するには、
PDO
と
新たに提供された SQLSRV Native 関数
を使う以外に選択肢は無いのでしょうか?
PEAR::DB と PEAR::MDB2 を使っている箇所は全て書き換える必要があるのでしょうか?

認識に間違いがある個所、別の方法等があればご教授ください。


PHP-users メーリングリストの案内