今回の環境:
- XAMPP for Windows 7.0.8
- Windows 10
- Azure SQL Database (すでにデータベース作成済みとします)
XAMPPをインストールしたWindows10上のlocalhostからPHP7でAzure SQL Databaseに接続する方法です。
こちらのその手順が書いてあります。
上のリンク先の「手順 1: 開発環境を設定する」の項目に書かれている「PHP 開発用の開発環境を構成する」をクリックすると、こちらのページ(英語)に飛びます。
Step 1: Configure development environment for PHP development
このページには英語でこう書かれています。
- Identify which version of the PHP driver you will use, based on your environment, as noted here: System Requirements for the PHP SQL Driver
- Download and install applicable PHP Driver here: Download Microsoft PHP Driver
- Download and install applicable ODBC Driver here: Download ODBC Driver for SQL Server
- Configure loading the PHP driver, as noted here: Loading the PHP SQL Driver
- Configure IIS to host PHP applications, as noted here: Configuring IIS for PHP SQL Driver
この中の「Download Microsoft PHP Driver」をクリックすると、「Microsoft Drivers for PHP for SQL Server」のページに飛びますので、「Download」ボタンを押下します。
すると「Choose the download you want」と表示されるのですが、一番下の「SQLSRV40.EXE」がPHP7用のファイルですのでチェックボックスにチェックを入れて、「Next」ボタンを押すとダウンロードが開始されます。
ダウンロードした「SQLSRV40.EXE」をダブルクリックして解凍すると、全部で12個のファイルが出てきます。
PHP7のインストールフォルダ直下のextフォルダ(例:C:\xampp\php\ext)に解凍された「php_sqlsrv_7_ts_x86.dll」や
「php_pdo_sqlsrv_7_ts_x86.dll」などのファイルをコピーします。
コピーし終わったら、これらの.dllファイルをPHP7に読み込む為に、「php.ini」(例:C:\xampp\php\php.ini)に以下の行を追加します。(参照:PHP SQL ドライバーの読み込み)
extension = "C:\xampp\php\ext\php_sqlsrv_7_ts_x86.dll"
extension = "C:\xampp\php\ext\php_pdo_sqlsrv_7_ts_x86.dll"
XAMPPのコントロールパネルからApacheを再起動して、「phpinfo();」で設定を確認すると、「sqlsrv」や「pdo_sqlsrv」の項目が追加されていると思います。
つぎに以下のページから、「Microsoft ODBC Driver 13 for SQL Server」をダウンロードしてインストールします。
Download Microsoft® ODBC Driver 13 for SQL Server® - Windows from Official Microsoft Download Center
(「ダウンロード」ボタンを押下すると、x86用かx64用かの選択画面が出ます。)
これでWindows10からPHP7を使ってAzure SQL Databaseに接続するためのドライバはインストール出来ました。
以下のPHPスクリプトで「myserver」、「AdventureWorks」、「MyUser」、「MyPassword」を設定してlocalhost上で実行すると、「Success!」が表示されてAzure SQL Databaseに接続できると思います。(参照:Step 3: Proof of concept connecting to SQL using PHP)
<?php $serverName = "tcp:myserver.database.windows.net,1433"; $connectionOptions = array( "Database"=>"AdventureWorks", "Uid"=>"MyUser", "PWD"=>"MyPassword"); $conn = sqlsrv_connect( $serverName, $connectionOptions ); if( $conn == false ){ echo "Failure."; } else { echo "Success!"; }