다음을 통해 공유


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

적용 대상: Azure Database for PostgreSQL - 유연한 서버

이 빠른 시작에서는 PHP 애플리케이션을 사용하여 Azure Database for PostgreSQL에 연결하는 방법을 보여 줍니다. SQL 문을 사용하여 데이터베이스의 데이터를 쿼리, 삽입, 업데이트 및 삭제하는 방법을 보여 줍니다. 이 문서의 단계에서는 PHP를 사용하여 개발하는 데 익숙하고 Azure Database for PostgreSQL 작업에 익숙하지 않은 것으로 가정합니다.

필수 조건

이 빠른 시작에서는 Azure Database for PostgreSQL - 유연한 서버의 인스턴스 만들기에서 만든 리소스를 시작점으로 사용합니다.

PHP 설치

서버에 PHP를 설치하거나 PHP를 포함하는 Azure 웹앱을 만듭니다.

Windows

  • PHP 7.1.4 비스레드 안전(x64) 버전 다운로드
  • PHP를 설치하고 PHP 매뉴얼에서 자세한 구성 정보 참조
  • 이 코드는 PHP 설치에 포함된 pgsql 클래스(ext/php_pgsql.dll)를 사용합니다.
  • 일반적으로 C:\Program Files\PHP\v7.1\php.ini에 있는 php.ini 구성 파일을 편집하여 pgsql 확장을 활성화했습니다. 구성 파일에는 extension=php_pgsql.so 텍스트가 있는 줄이 포함되어야 합니다. 표시되지 않으면 텍스트를 추가하고 파일을 저장합니다. 텍스트가 있지만 세미콜론 접두사로 주석 처리된 경우 세미콜론을 제거하여 텍스트의 주석 처리를 제거합니다.

Linux(Ubuntu)

  • PHP 7.1.4 비스레드 안전(x64) 버전 다운로드
  • PHP를 설치하고 PHP 매뉴얼에서 자세한 구성 정보 참조
  • 이 코드는 pgsql 클래스(php_pgsql.so)를 사용합니다. sudo apt-get install php-pgsql을 실행하여 설치합니다.
  • /etc/php/7.0/mods-available/pgsql.ini 구성 파일을 편집하여 pgsql 확장을 활성화했습니다. 구성 파일에는 extension=php_pgsql.so 텍스트가 있는 줄이 포함되어야 합니다. 표시되지 않으면 텍스트를 추가하고 파일을 저장합니다. 텍스트가 있지만 세미콜론 접두사로 주석 처리된 경우 세미콜론을 제거하여 텍스트의 주석 처리를 제거합니다.

macOS

연결 정보 가져오기

PostgreSQL용 Azure Database에 연결하는 데 필요한 연결 정보를 가져옵니다. 정규화된 서버 이름 및 로그인 자격 증명이 필요합니다.

  1. Azure Portal에 로그인합니다.
  2. Azure Portal의 왼쪽 메뉴에서 모든 리소스를 선택한 다음, 만든 서버(예: mydemoserver)를 검색합니다.
  3. 서버 이름을 선택합니다.
  4. 서버의 개요 패널에 있는 서버 이름서버 관리자 로그인 이름을 기록해 둡니다. 암호를 잊어버리면 이 패널에서 암호를 재설정할 수 있습니다.

테이블 연결 및 생성

다음 코드를 사용하여 CREATE TABLE SQL 문을 사용하여 테이블을 연결하고 만든 다음 INSERT INTO SQL 문을 사용하여 테이블에 행을 추가합니다.

코드 호출 메서드 pg_connect() 는 Azure Database for PostgreSQL에 연결하는 데 사용됩니다. 그런 다음 pg_query() 메서드를 여러 번 호출하여 여러 명령을 실행하고 pg_last_error()를 호출하여 매번 오류가 발생했는지 세부 정보를 확인합니다. 그런 다음 메서드 pg_close()를 호출하여 연결을 닫습니다.

, $database$user$password 매개 변수를 $host값으로 바꿉다.

<?php
    // Initialize connection variables.
 $host = "mydemoserver.postgres.database.azure.com";
 $database = "mypgsqldb";
 $user = "mylogin@mydemoserver";
 $password = "<server_admin_password>";

    // Initialize connection object.
 $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
        or die("Failed to create connection to database: ". pg_last_error(). "<br/>");
    print "Successfully created a connection to the database.<br/>";

    // Drop the previous table of the same name if one exists.
 $query = "DROP TABLE IF EXISTS inventory;";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
    print "Finished dropping table (if existed).<br/>";

    // Create table.
 $query = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
    print "Finished creating table.<br/>";

    // Insert some data into the table.
 $name = '\'banana\'';
 $quantity = 150;
 $query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");

 $name = '\'orange\'';
 $quantity = 154;
 $query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");

 $name = '\'apple\'';
 $quantity = 100;
 $query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error()). "<br/>";

    print "Inserted 3 rows of data.<br/>";

    // Closing connection
    pg_close($connection);
?>

데이터 읽기

SELECT SQL 문을 사용하여 데이터를 연결하고 읽으려면 다음 코드를 사용하세요.

코드 호출 메서드 pg_connect() 는 Azure Database for PostgreSQL에 연결하는 데 사용됩니다. 그런 다음 pg_query() 메서드를 호출하여 SELECT 명령을 실행하고, 결과 집합에 결과를 보관하고, 오류가 발생할 때마다 pg_last_error() 메서드를 호출하여 세부 정보를 확인합니다. 결과 집합을 읽으려면 루프에 행별로 pg_fetch_row() 메서드를 호출하고, 행 데이터가 각 배열 위치에 열당 데이터 값이 하나 있는 배열 $row를 검색합니다. 결과 집합을 해제하려면 pg_free_result() 메서드를 호출합니다. 그런 다음 pg_close() 메서드를 호출하여 연결을 닫습니다.

, $database$user$password 매개 변수를 $host값으로 바꿉다.

<?php
    // Initialize connection variables.
 $host = "mydemoserver.postgres.database.azure.com";
 $database = "mypgsqldb";
 $user = "mylogin@mydemoserver";
 $password = "<server_admin_password>";

    // Initialize connection object.
 $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
                or die("Failed to create connection to database: ". pg_last_error(). "<br/>");

    print "Successfully created a connection to the database. <br/>";

    // Perform some SQL queries over the connection.
 $query = "SELECT * from inventory";
 $result_set = pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
    while ($row = pg_fetch_row($result_set))
 {
        print "Data row = ($row[0], $row[1], $row[2]). <br/>";
 }

    // Free result_set
    pg_free_result($result_set);

    // Closing connection
    pg_close($connection);
?>

데이터 업데이트

UPDATE SQL 문을 사용하여 데이터를 연결하고 업데이트하려면 다음 코드를 사용하세요.

코드 호출 메서드 pg_connect() 는 Azure Database for PostgreSQL에 연결하는 데 사용됩니다. 그런 다음 pg_query() 메서드를 호출하여 명령을 실행하고 오류가 발생할 때마다 pg_last_error() 메서드를 호출하여 세부 정보를 확인합니다. 그런 다음 pg_close() 메서드를 호출하여 연결을 닫습니다.

, $database$user$password 매개 변수를 $host값으로 바꿉다.

<?php
    // Initialize connection variables.
 $host = "mydemoserver.postgres.database.azure.com";
 $database = "mypgsqldb";
 $user = "mylogin@mydemoserver";
 $password = "<server_admin_password>";

    // Initialize connection object.
 $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
                or die("Failed to create connection to database: ". pg_last_error(). ".<br/>");

    Print "Successfully created a connection to the database. <br/>";

    // Modify some data in a table.
 $new_quantity = 200;
 $name = '\'banana\'';
 $query = "UPDATE inventory SET quantity = $new_quantity WHERE name = $name;";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). ".<br/>");
    print "Updated 1 row of data. </br>";

    // Closing connection
    pg_close($connection);
?>

데이터 삭제

DELETE SQL 문을 사용하여 데이터를 연결하고 읽으려면 다음 코드를 사용하세요.

코드 호출 메서드 pg_connect() 는 Azure Database for PostgreSQL에 연결하는 데 사용됩니다. 그런 다음 pg_query() 메서드를 호출하여 명령을 실행하고 오류가 발생할 때마다 pg_last_error() 메서드를 호출하여 세부 정보를 확인합니다. 그런 다음 pg_close() 메서드를 호출하여 연결을 닫습니다.

, $database$user$password 매개 변수를 $host값으로 바꿉다.

<?php
    // Initialize connection variables.
 $host = "mydemoserver.postgres.database.azure.com";
 $database = "mypgsqldb";
 $user = "mylogin@mydemoserver";
 $password = "<server_admin_password>";

    // Initialize connection object.
 $connection = pg_connect("host=$host dbname=$database user=$user password=$password")
            or die("Failed to create connection to database: ". pg_last_error(). ". </br>");

    print "Successfully created a connection to the database. <br/>";

    // Delete some data from a table.
 $name = '\'orange\'';
 $query = "DELETE FROM inventory WHERE name = $name;";
    pg_query($connection, $query)
        or die("Encountered an error when executing given sql statement: ". pg_last_error(). ". <br/>");
    print "Deleted 1 row of data. <br/>";

    // Closing connection
    pg_close($connection);
?>

리소스 정리

이 빠른 시작에서 사용된 모든 리소스를 정리하려면 다음 명령을 사용하여 리소스 그룹을 삭제합니다.

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

Azure Database for PostgreSQL 제품 팀과 제안 및 버그를 공유합니다.