7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows版PHP+PDOでSQLServerにアクセスしてみる

Posted at

#目的
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への正しい接続方法

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?