Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

PHPからSQL Serverへの正しい接続方法

PHPからMicrosoft SQL Serverを使おう! 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 前回からシリーズでお送りしている「PHPからMicrosoft SQL Serverを使おう!」、第2回目は、PHPコードからのMicrosoft SQL Serverへの接続についてです。

目次

はじめに

 前回からシリーズでお送りしている「PHPからMicrosoft SQL Serverを使おう!」、第2回目は、PHPコードからのMicrosoft SQL Server(以下 SQL Server)への接続についてです。

 今回の記事では、マイクロソフトがPHP向けにリリースした、SQL Server Driver for PHPドライバーの入手とインストール、実際にPHPのコードからSQL Serverに接続するための方法について紹介させていただきます。

1 PHPコードからSQL Serverへの接続

1.1 PHPコードからSQL Serverへ接続するための手段

 PHP 5.2までのPHPランタイムには、SQL Serverに接続するためのMssql関数(php_mssql.dll)が用意されており、アプリケーションはこれを使用してSQL Serverに接続することができましたが、Windows版のPHP 5.3以降のバージョンではサポートされない状態となっていました。

 また、マイクロソフトからは、PHP 5.3以降のPHPでも使用可能なSQL Server 2005用のドライバーがリリースされましたが、UTF-8に絡む文字化けなどで、なかなか気軽に使用できるという状況ではありませんでした。

 しかし、その後リリースされたSQL Server Driver for PHP Version 1.1では、これらの問題に対応し、さらには最新のVersion 2.0ではPDOがサポートされました。これにより他のデータベースサーバーとの相互運用性が格段に向上しています。

図 : SQL Server Driver for PHP 1.1と2.0の構造比較
図 : SQL Server Driver for PHP 1.1と2.0の構造比較

1.2 SQL Server Driver for PHPを使用するには

 SQL Server Driver for PHPを使用するには、(1)ドライバーのファイルを入手し、(2)PHPランタイムのエクステンションに配置して、(3)php.iniファイルに設定を追加する、という一連の作業を行います。

 これらの作業は、一般的なPHP拡張を追加する手順と同じです。

 SQL Server Driver for PHPからインストールまでの具体的な手順は以下の通りです。

  1. ダウンロードセンターよりMicrosoft Drivers for PHP for SQL Serverをダウンロードします。
  2. ダウンロードしたファイル「SQLSRV20.EXE」をダブルクリックし、任意のフォルダに内容を解凍します。
  3. 解凍されたファイルから、使用しているPHPランタイムのバージョンと種類にあった*.dllを、PHPランタイムのextフォルダに配置します。

 なお、解凍されたファイルには、PHP 5.2と5.3用の、スレッドセーフ、ノン・スレッドセーフ用の2つのsqlsrvドライバーと、PDOのドライバーのファイルが含まれています。ドライバーファイルがスレッドセーフなものであるか否かの判断は、ファイル名に含まれる文字、ts(Thread Safe)かnts(Non Thread Safe)かで行います。

図 : SQLSRV20.EXEに含まれるファイル
図 : SQLSRV20.EXEに含まれるファイル

 PHPのバージョンとファイルの対応についての詳細は、MSDNのドキュメント「System Requirements(Microsoft Drivers for PHP for SQL Server)」内の表をご参照ください。

  1. php.iniファイルにドライバーの参照情報を追加します。

 PHPランタイム内にあるphp.iniファイルをテキストエディターでオープンし、様々なエクステンション(拡張)への参照が"extension="で記述してある箇所に以下のように記述を追加します。

例)PHP 5.3 ノン・スレッドセーフ用のドライバーを指定する場合
extension=php_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll

 なお、php.iniファイルが存在しない場合は、php.ini-recommendedファイルをphp.iniにリネームして使用します。

 以上でphp.iniファイルへの設定の追加は完了です。

 PHPスクリプトファイルにphpinfo関数を記述して実行し、ドライバーが正しく組み込まれたか確認します。

 正しく組み込まれていれば、phpinfo関数の結果に、以下のような設定が表示されます。

図 : sqlsrvドライバーの情報
図 : sqlsrvドライバーの情報
図 : sqlsrv PDOドライバーの情報
図 : sqlsrv PDOドライバーの情報

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:PHPからMicrosoft SQL Serverを使おう!
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5