PHPでSQL Server 2005にアクセス

あるプロジェクトで、Accessのデータベースに保存されているデータを元にメールを自動配信するプログラムを作ることになった。データベースがMySQLとかPostgreSQLだったらPHPでちょこっとプログラムを書けばすむ。がしかし、Accessのデータベースとなると話は厄介だ。VBAでは Outlook の機能を使ってメール送信が行えるが、これでは自動化は無理だ。メール送信といえばPHPを使うほうがよいし、そうなるとデータベースはAccessではなく SQL Server を使うべきだ。今回は、PHP から SQL Server に接続したときに起こった問題を解決した経緯を説明する。

というわけで、動作環境の仕様は次のとおり。

  • OS … Windows 2003 Server
  • DBMS … SQL Server 2005 Express Edition
  • ウェブサーバ … Apache 2.2 (XAMPP)
  • PHP … PHP 5.2.5 (XAMPP)
  • メールサーバ … Mercury Mail (XAMPP)

さて、PHPからデータベースをアクセスするのだから、苦もなく動作するだろうと最初は多寡をくくっていた。ところが、そうは問屋がおろさない。全くアクセスできないのである。そこで、いろいろとググってみると、Windows版PHP付属の ntwdblib.dll (Ver. 2000.2.8.0) では動かないので新しいバージョンが必要だということがわかった。そこで、それをインストールしてみたが、今度は msvcr71.dll がないので動作できないというエラーメッセージが出る。また、これもありかを探してインストール。無事、接続できた。どちらのファイルも、Windows への影響を避けるため、システムフォルダではなく、C\:xampp\php のフォルダにコピーした。

それぞれのファイルのありかは次のページである。

残念ながら、ぼくのぶつかった問題を一度に解決できるページはなかったので、ここにメモとして作成した次第だ。同じ問題に直面した方は参考にしてほしい。

コメントを残す