#目的
Windows 10 Pro x64 + httpd-2.4.27-Win64-VC15 に
php-7.3.3-Win32-VC15-x64 + php_pdo_sqlsrv_73_ts_x64 をインストールして
SQL Serverにアクセスしてみる
##ダウンロード
PHP 7.3 (7.3.3)より
php-7.3.3-Win32-VC15-x64.zipをDLして、適当なフォルダに解凍して配置する。
※自分の場合は C:\Dev\Lang\php7 とリネームして配置
##SQL Server 用のドライバのインストール
Microsoft SQL Server 用 Drivers for PHP をダウンロードする
より Microsoft SQL Server 用 Drivers 5.6 for PHP をDLする
適当なフォルダで SQLSRV56.EXE を実行する
php_sqlsrv_73_ts_x64.dll、php_pdo_sqlsrv_73_ts_x64.dllを C:\Dev\Lang\php7\ext 以下にコピーする
##httpd.confの修正
C:\Apache24\conf\httpd.conf の最後に以下を追加する
LoadModule php7_module C:\Dev\Lang\php7\php7apache2_4.dll
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
PHPIniDir "C:/Dev/Lang/php7"
##php.iniの修正
short_open_tag = On ;これは好みかなぁ・・
zend.multibyte = On
zend.script_encoding = UTF-8
extension_dir = "ext"
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
fastcgi.logging = 0
extension=php_mbstring.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_detection = Off
extension=php_pdo_sqlsrv_73_ts_x64
extension=php_sqlsrv_73_ts_x64
##動作の確認
apache を再起動する
C:\Apache24\htdocs 以下に以下を配置
> cat info.php
<?php phpinfo(); ?>
http://localhost:8080/info.php にアクセスすると phpinfo が表示される
sqlsrv、pdo_sqlsrvが認識されていることを確認する
##サンプルコード
<?php
$dsn = 'sqlsrv:server=localhost;database=demo';
$user = 'demo';
$password = 'demo';
$dbh = new PDO($dsn, $user, $password);
$sql = "select * from ZIPCODE";
foreach ($dbh->query($sql) as $row) {
print($row['POSTAL'] . ' ' . $row['POADDRKANJI']);
}
$dbh = null;
?>
##参考にしたのは以下のサイト
ローカルでPHP×Apache連携(Windows環境)
PHPからSQL Serverへの正しい接続方法