SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PHPからMicrosoft SQL Serverを使おう!(AD)

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

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

 前回からシリーズでお送りしている「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ドライバーの情報

次のページ
1.3 PHPからSQL Serverに接続するコード

この記事は参考になりましたか?

PHPからMicrosoft SQL Serverを使おう!連載記事一覧

もっと読む

この記事の著者

物江 修(日本マイクロソフト株式会社)(モノエ オサム(ニホンマイクロソフトカブシキガイシャ))

2000年よりマイクロソフト、NTT ドコモ のジョイントベンチャー立ち上げに参加。技術者として商用 ASP サービスの設計と開発に従事。 2004 年、マイクロソフトに入社。インターネット開発製品のサポートエンジニアを経て現職に。 現在は IIS から ASP.NET まで、マイクロソフトのインターネット技術の啓発活動を行う。ブログ: http://blogs.msdn.com/b/osamum/ Twitter: osamum_MS

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5736 2012/01/27 16:43

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング