クイック スタート:PHP を使用して Azure Database for MySQL に接続してデータを照会する

適用対象: Azure Database for MySQL - シングル サーバー

重要

Azure Database for MySQL の単一サーバーは提供終了パスにあります。 Azure Database for MySQL フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for MySQL フレキシブル サーバーへの移行の詳細については、「Azure Database for MySQL 単一サーバーの動作」を参照してください

このクイックスタートでは、PHP アプリケーションを使用して Azure Database for MySQL に接続する方法を紹介します。 ここでは、SQL ステートメントを使用してデータベース内のデータを照会、挿入、更新、削除する方法を説明します。

前提条件

このクイックスタートでは、以下が必要です。

Note

このクイックスタートでは、MySQLi ライブラリを使用して、接続を管理し、サーバーのクエリを実行します。

接続情報の取得

データベース サーバーの接続情報は、Azure portal で次の手順のようにして取得できます。

  1. Azure Portal にログインします。

  2. Azure Databases for MySQL のページに移動します。 Azure Database for MySQL を検索して選択できます。 Find Azure Database for MySQL

  3. MySQL サーバー (mydemoserver など) を選択します。

  4. [概要] ページで、 [サーバー名] の横にある完全修飾サーバー名と、 [サーバー管理者ログイン名] の横にある管理者ユーザー名をコピーします。 サーバー名またはホスト名をコピーするには、名前をポイントして [コピー] アイコンを選択します。

重要

  • パスワードを忘れた場合は、パスワードをリセットすることができます。
  • host、username、password、db_name の各パラメーターは実際の値に置き換えてください**

手順 1:サーバーへの接続

SSL は、既定で有効になっています。 ローカル環境から接続するには、DigiCertGlobalRootG2 SSL 証明書をダウンロードする必要がある場合があります。 このコードからは次のものが呼び出されます。

  • MySQLi を初期化するための mysqli_init
  • SSL 証明書のパスを指し示すための mysqli_ssl_set。 これはローカル環境では必要ですが、App Service Web アプリまたは Azure 仮想マシンには必要ありません。
  • MySQL に接続するための mysqli_real_connect
  • 接続を閉じるための mysqli_close
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin@mydemoserver';
$password = 'your_password';
$db_name = 'your_database';

//Initializes MySQLi
$conn = mysqli_init();

mysqli_ssl_set($conn,NULL,NULL, "/var/www/html/DigiCertGlobalRootG2.crt.pem", NULL, NULL);

// Establish the connection
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306, NULL, MYSQLI_CLIENT_SSL);

//If connection failed, show the error
if (mysqli_connect_errno())
{
    die('Failed to connect to MySQL: '.mysqli_connect_error());
}

手順 2:テーブルを作成する

次のコードを使用して接続します。 このコードからは次のものが呼び出されます。

// Run the create table query
if (mysqli_query($conn, '
CREATE TABLE Products (
`Id` INT NOT NULL AUTO_INCREMENT ,
`ProductName` VARCHAR(200) NOT NULL ,
`Color` VARCHAR(50) NOT NULL ,
`Price` DOUBLE NOT NULL ,
PRIMARY KEY (`Id`)
);
')) {
printf("Table created\n");
}

手順 3:データの挿入

INSERT SQL ステートメントを使用してデータを挿入するには、次のコードを使用します。 このコードでは、次のメソッドが使用されます。

//Create an Insert prepared statement and run it
$product_name = 'BrandNewProduct';
$product_color = 'Blue';
$product_price = 15.5;
if ($stmt = mysqli_prepare($conn, "INSERT INTO Products (ProductName, Color, Price) VALUES (?, ?, ?)"))
{
    mysqli_stmt_bind_param($stmt, 'ssd', $product_name, $product_color, $product_price);
    mysqli_stmt_execute($stmt);
    printf("Insert: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
    mysqli_stmt_close($stmt);
}

手順 4:データの読み取り

SELECT SQL ステートメントを使用してデータを読み取るには、次のコードを使用します。 そのコードでは、次のメソッドが使用されます。

//Run the Select query
printf("Reading data from table: \n");
$res = mysqli_query($conn, 'SELECT * FROM Products');
while ($row = mysqli_fetch_assoc($res))
 {
    var_dump($row);
 }

手順 5: データの削除

DELETE SQL ステートメントを使用して行を削除するには、次のコードを使用します。 そのコードでは、次のメソッドが使用されます。

//Run the Delete statement
$product_name = 'BrandNewProduct';
if ($stmt = mysqli_prepare($conn, "DELETE FROM Products WHERE ProductName = ?")) {
mysqli_stmt_bind_param($stmt, 's', $product_name);
mysqli_stmt_execute($stmt);
printf("Delete: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}

リソースをクリーンアップする

このクイックスタートで使用したすべてのリソースをクリーンアップするには、次のコマンドを使用してリソース グループを削除します。

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

次のステップ