Windows用のXAMPPからMSSQLに接続するにはいろいろ手間をかけなければなりません。
一連の手順をメモします。
最新の純正ドライバを準備
まずはMicrosoftから純正のPHP用SQL Serverドライバを入手します。
こちらから> http://www.microsoft.com/download/en/details.aspx?id=20098
ダウンロードすると、「SQLSRV20.EXE」というファイルが落とされ、.EXEをダブルクリックして展開すると以下のようなファイルが並びます。
ファイル名の説明
いろいろ入っていますがそれぞれ細かく違いますので、何でもかんでも放り込むクセがある人は気をつけてください<自分
pdoが付いているものはpdo接続用です。
その後の52、53というのは「PHPのバーション」です。
52=5.2.x、53=5.3.x用ということです。
次のts、ntsは「スレッドセーフかどうか」の判定です。
ts=Thread Safe、nts=non Thread Safeです。
最後のvc6、vc9は重要です。
これは使用するPHP自体をコンパイルしたコンパイラ(ややこしい)のバージョンと同じものを入れなければなりません。
以下の手順でPHPのコンパイラバージョンを確認してください。
PHPのコンパイラのバージョンを確認
まずは普通にXAMPPを起動し、Apacheを起動します。
htdocsに「info.php」という名前のテキストファイルを作り、ファイル内に以下のコードを書きます。
<?php phpinfo(); ?>
ファイルを保存し、ブラウザからhttp://localhost/info.phpにアクセスします。
以下のような画面が表示されます。
明るい部分がコンパイラのバージョン番号ですね。
下記の場合は「VC9」が適合するバージョンです。
PHPのextフォルダにdllを移動
ということでPHP5.3、VC9用のdllを xampp > php > ext フォルダに入れます。
php.iniを開きます。
extension=php_bz2.dll extension=php_curl.dll ;extension=php_dba.dll extension=php_mbstring.dll …
などと書いてある部分を見つけます。
一番下に
extension=php_sqlsrv_53_ts_vc9.dll
と書き足します。
当たり前ですが php_sqlsrv_53_ts_vc9.dll の部分は上記で選んだファイル名になります。
phpinfoの再確認
ファイルを保存し、Apacheを再起動します。
再度 http://localhost/info.php にアクセスします。
このような項目が増えていれば問題ありません。
ちなみにVC9、VC6を間違えた場合は以下のようなエラーが出ます。
「PHP Startup: sqlsrv: Unable to initaliza module
Module compiled with build ID=API20090626,TS,VC6
PHPcompiled with build ID=API20090626,TS,VC9
These options need to match.」
これは先ほどのVC9、VC6の適合異常です。
再度確かめて適切なDLLを入れてください。
以上でWindows用XAMPPへのSqlserver接続設定は完了です!
以上の手順はmonoe’s blogさんを参考にしました。
有用な記事に感謝!