クイックスタート: PHP を使用して Azure SQL データベースまたは Azure SQL Managed Instance のデータベースにクエリの実行
適用対象: Azure SQL データベース Azure SQL Managed Instance
この記事では、PHP を使用して Azure SQL Database または Azure SQL Managed Instance 内のデータベースに接続する方法について説明します。 その後、T-SQL ステートメントを使用してデータを照会することができます。
前提条件
このクイック スタートを完了するには、次のものが必要です。
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure SQL Database または Azure SQL Managed Instance 内のデータベース。 次のいずれかのクイックスタートを使用して、データベースを作成し、構成できます。
アクション SQL Database SQL Managed Instance Azure VM 上の SQL Server 作成 ポータル ポータル ポータル CLI CLI PowerShell PowerShell PowerShell 構成 サーバーレベルの IP ファイアウォール規則 VM からの接続 オンプレミスからの接続 SQL Server インスタンスに接続する データの読み込み クイックスタートごとに読み込まれた Wide World Importers Wide World Importers を復元する Wide World Importers を復元する GitHub の BACPAC ファイルから Adventure Works を復元またはインポートする GitHub の BACPAC ファイルから Adventure Works を復元またはインポートする 重要
この記事のスクリプトは、
AdventureWorks2022
データベースを使用するように記述されています。 SQL Managed Instance の場合は、AdventureWorks2022
データベースをインスタンス データベースにインポートするか、本記事のスクリプトを変更して Wide World Importers データベースを使用する必要があります。ご使用のオペレーティング システムに対応した、以下の PHP 関連のソフトウェアをインストール済みであること。
macOS: PHP と ODBC ドライバーをインストールした後、SQL Server 用の PHP ドライバーをインストールします。 手順 1、2、および 3 を参照してください。
Linux: PHP と ODBC ドライバーをインストールした後、PHP Driver for SQL Server をインストールします。 手順 1、2、および 3 を参照してください。
サーバーの接続情報を取得する
Azure SQL Database のデータベースに接続するために必要な接続情報を取得します。 後の手順で、完全修飾サーバー名またはホスト名、データベース名、およびログイン情報が必要になります。
Azure portal にサインインします。
[SQL Database] または [SQL Managed Instance] ページに移動します。
[概要] ページで、Azure SQL Database 内のデータベースの [サーバー名] の横にある完全修飾サーバー名、または Azure SQL Managed Instance または Azure VM 内の SQL Server の [ホスト] の横にある完全修飾サーバー名 (または IP アドレス) を確認します。 サーバー名またはホスト名をコピーするには、名前をポイントして [コピー] アイコンを選択します。
注意
Azure VM 上の SQL Server の接続情報については、SQL Server インスタンスへの接続に関するページをご覧ください。
データベースに対してクエリを実行するコードを追加する
任意のテキスト エディターで新しいファイル (sqltest.php) を作成します。
その内容を次のコードに置き換えます。 そのうえで、サーバー、データベース、ユーザー、パスワードの適切な値を入力してください。
<?php $serverName = "your_server.database.windows.net"; // update me $connectionOptions = array( "Database" => "your_database", // update me "Uid" => "your_username", // update me "PWD" => "your_password" // update me ); //Establishes the connection $conn = sqlsrv_connect($serverName, $connectionOptions); $tsql= "SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid"; $getResults= sqlsrv_query($conn, $tsql); echo ("Reading data from table" . PHP_EOL); if ($getResults == FALSE) echo (sqlsrv_errors()); while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) { echo ($row['CategoryName'] . " " . $row['ProductName'] . PHP_EOL); } sqlsrv_free_stmt($getResults); ?>
コードの実行
コマンド プロンプトでアプリを実行します。
php sqltest.php
先頭から 20 行が返されることを確認して、アプリ ウィンドウを閉じます。