Windows Serverでは、APS.NETを利用していますが、PHPも使えるようにする際のメモ。
前提
- OSインストール済
- IISインストール済
- SQL Serverインストール済(ここでは2014で検証)
- インストールするPHPは5.6(Laravel5.1.xに対応するため)
インストール
インストールの方法はいろいろあるが、WebPIを利用するのが一番簡単そうなので、それで行います。
WebPI(Web Platform Installer)をダウンロードし、起動して、検索ウインドウで"php"を検索。そこで出てくる、
- php5.6
- Microsoft Drivers 3.2 for PHP v5.6 for SQL Server in IIS
の2つを選択肢、インストールする。依存コンポーネントも含め、いくつかのものがインストールされます。
動作確認
インストール場所
インストールは
C:\Program Files (x86)\PHP
に行われ、php.iniは、
C:\Program Files (x86)\PHP\v5.6\php.ini
となる。SQL Serverアクセスに必要なモジュールは標準でONになっているもよう。
その他、IISへの登録とかも終わっているので後は使うだけ。
extension=php_pdo_sqlsrv.dll
extension=php_sqlsrv.dll
私はPDOを使う派。ちゃんと動いているかは、
<?php
	phpinfo();
でどうぞ。設定を変更したらIISの再起動が必要です。
SQL Serverへの接続確認
PDO生成時の文字列が少し違う程度で、後はMySQLなどと同じ。まあ、それがPDOですが。
こんな感じ。
testdb,usersテーブル,nameカラムはあることが前提。
<?php
	//PDO
	$dbh = new PDO("sqlsrv:server=localhost;database=testdb","sa","password!");
	//エラー出力設定(別にいらない)
	$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	//通常の利用
	$stmt = $dbh->prepare("select * from users");
	$status = $stmt->execute();
	//出力
	foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $row)
	{
		echo $row["name"]."<br>";
	}
普通にアクセスできました。