빠른 시작: PHP를 사용하여 Azure Database for MySQL에서 데이터 연결 및 쿼리

적용 대상: Azure Database for MySQL - 단일 서버

Important

Azure Database for MySQL 단일 서버는 사용 중지 경로에 있습니다. Azure Database for MySQL 유연한 서버로 업그레이드하는 것이 좋습니다. Azure Database for MySQL 유연한 서버로 마이그레이션하는 방법에 대한 자세한 내용은 Azure Database for MySQL 단일 서버에 대한 새로운 소식을 참조하세요.

이 빠른 시작에서는 PHP 애플리케이션을 사용하여 MySQL용 Azure Database에 연결하는 방법을 보여줍니다. SQL 문을 사용하여 데이터베이스의 데이터를 쿼리, 삽입, 업데이트 및 삭제하는 방법을 보여 줍니다.

필수 조건

이 빠른 시작에는 다음이 필요합니다.

참고 항목

이 빠른 시작에서는 MySQLi 라이브러리를 사용하여 연결을 관리하고 서버를 쿼리합니다.

연결 정보 가져오기

다음 단계에 따라 Azure Portal에서 데이터베이스 서버 연결 정보를 가져올 수 있습니다.

  1. Azure Portal에 로그인합니다.

  2. Azure Databases for MySQL 페이지로 이동합니다. Azure Database for MySQL을 검색하여 선택할 수 있습니다. Find Azure Database for MySQL

  3. MySQL 서버(예: mydemoserver)를 선택합니다.

  4. 개요 페이지에서 서버 이름 옆에 정규화된 서버 이름을 복사하고 서버 관리자 로그인 이름 옆에 관리 사용자 이름을 복사합니다. 서버 이름이나 호스트 이름을 복사하려면 마우스로 해당 이름 위를 가리키고 복사 아이콘을 선택합니다.

Important

  • 암호를 잊어버린 경우 암호를 재설정할 수 있습니다.
  • host, username, passworddb_name 매개 변수를 고유한 값**으로 바꿉니다.

1단계: 서버에 연결

SSL은 기본적으로 활성화되어 있습니다. 로컬 환경에서 연결하려면 DigiCertGlobalRootG2 SSL 인증서를 다운로드해야 할 수도 있습니다. 이 코드는 다음을 호출합니다.

  • mysqli_init: MySQLi를 초기화합니다.
  • mysqli_ssl_set: SSL 인증서 경로를 가리킵니다. 이는 로컬 환경에 필요하지만 App Service 웹앱 또는 Azure 가상 머신에는 필요하지 않습니다.
  • mysqli_real_connect: MySQL에 연결합니다.
  • 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

다음 단계