IIS×PHP×SQLServer環境にして、
PHPでSQLServerのデータを呼び出すまでの準備をメモします。
PHP for SQL Server driver をインストールする
https://docs.microsoft.com/ja-jp/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15
上記URL、もしくは「PHP for SQL Server driver」で検索しダウンロードページへ。
「Microsoft SQL Server 用 Drivers 5.6 for PHP」をダウンロード
→ファイルを実行(自己解凍形式のようなプログラムです)
デスクトップ等適当な場所指定して(ファイル複数あるので事前にフォルダ作成推奨)解凍
→c:\php\extのフォルダにほかのDLLが多数ある階層にdllファイルを入れる。(パスは人によって違う場合もある)全部必要はなく「php_pdo_sqlsrv_73_nts_x64.dll」と「php_sqlsrv_73_nts_x64.dll」の2つでOK。
ODBC Driver for SQL Serverをインストールする
https://docs.microsoft.com/ja-jp/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017
上記URLもしくは「ODBC Driver for SQL Server」で検索し、ダウンロードページへ。
現在(2020/1時点)の最新版はMicrosoft ODBC Driver 17 for SQL Server
Windows版をダウンロードします。クリックすると言語とビット数の選択も可能です。日本語64ビット版でいいと思います。
インストーラーを起動、そのまま次へで進んでインストールするだけです。
php.iniを編集する
c:\phpなどにあるphp.ini (ない場合は、php.ini-developmentをリネームする)をメモ帳などのテキストエディタで開き、以下2行を追記。
下の方(実際はどこでもOK)に2行を追記します。
extension=php_sqlsrv_73_nts_x64.dll
(ちなみにphp.iniの編集を反映させる場合は、IISを再起動[停止→開始]する必要があります)
phpinfo()で確認する
これまでの準備でSQLServerのドライバがphp上で読み込めているかを確認します。
①メモ帳などのテキストエディタに以下記述。
phpinfo();
?>
②IISで公開中のフォルダの中に「phpinfo.php」みたいな感じで保存する。(拡張子.phpならなんでもOK)
③クライアントでもサーバー側どちらでもいいので、ブラウザ(IEやChrome等)で開く。
④PDO 「sqlsrv」(MS SQLServerの事)が表示されていれば成功。
SQLServer内のテーブルをPHPで呼び出してみる(サンプルPHP)
IIS公開フォルダ内に以下のコードを記述したphpを配置する。
<head>
<title>PHPてすとだよ</title>
</head>
<style type="text/css">
table,td,th{
border-collapse: collapse;
border:1px solid #333;
}
</style>
<body>
PHPでSQLServerを呼び出す!
<table>
<?php
$dsn = 'sqlsrv:server=localhost;database=●DB名●';
$uid = 'sa';
$pwd = '●パスワード●';
$dbh = new PDO($dsn, $uid, $pwd);
$sqlt = "SELECT * FROM ●テーブル名●";
foreach ($dbh->query($sqlt) as $row) {
print("<tr><td>".$row['●項目1●']."</td>");
print("<td>".$row["●項目2●"]."</td></tr>");
}
$dbh = null;
?>
</table>
</body>
</html>
赤太字はご自身の設定に書き換えてください。(もちろん●の記号も消す)
server=localhostの部分は、このままでもいけるし、IPでもコンピュータ名でも可能です。saも違うIDの場合は書き換えます。
SSMSと比較。ちゃんとWEBでも呼び出せました!
500エラーとかでず、正常にテーブル上のデータが呼び出せていれば成功です。
今回の記事以上です。
コメント