Banco de dados do Azure para PostgreSQL-servidor único: Use PHP para se conectar e consultar dadosAzure Database for PostgreSQL - Single Server: Use PHP to connect and query data

Este início rápido explica como se pode ligar a uma Base de Dados do Azure para PostgreSQL através de uma aplicação PHP.This quickstart demonstrates how to connect to an Azure Database for PostgreSQL using a PHP application. Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados.It shows how to use SQL statements to query, insert, update, and delete data in the database. Os passos neste artigo pressupõem que está familiarizado com a programação com PHP e que nunca trabalhou com a Base de Dados do Azure para PostgreSQL.The steps in this article assume that you are familiar with developing using PHP, and are new to working with Azure Database for PostgreSQL.

Pré-requisitosPrerequisites

Este guia de início rápido utiliza os recursos criados em qualquer um destes guias como ponto de partida:This quickstart uses the resources created in either of these guides as a starting point:

Instalar o PHPInstall PHP

Instale o PHP no seu próprio servidor ou crie uma aplicação Web do Azure que inclua o PHP.Install PHP on your own server, or create an Azure web app that includes PHP.

WindowsWindows

  • Transfira a versão 7.1.4 do PHP (x64) não segura para threadsDownload PHP 7.1.4 non-thread safe (x64) version
  • Instale o PHP e veja o manual do PHP para mais configuraçõesInstall PHP and refer to the PHP manual for further configuration
  • O código utiliza a classe pgsql (ext/php_pgsql.dll) incluída na instalação do PHP.The code uses the pgsql class (ext/php_pgsql.dll) that is included in the PHP installation.
  • Ative a extensão pgsql ao editar o ficheiro de configuração php.ini, geralmente localizado em C:\Program Files\PHP\v7.1\php.ini.Enabled the pgsql extension by editing the php.ini configuration file, typically located at C:\Program Files\PHP\v7.1\php.ini. O ficheiro de configuração deve conter uma linha com o texto extension=php_pgsql.so.The configuration file should contain a line with the text extension=php_pgsql.so. Se não for apresentado, adicione o texto e guarde o ficheiro.If it is not shown, add the text and save the file. Se o texto estiver presente, mas comentado com um prefixo de ponto e vírgula, remova os comentários do texto ao remover o ponto e vírgula.If the text is present, but commented with a semicolon prefix, uncomment the text by removing the semicolon.

Linux (Ubuntu)Linux (Ubuntu)

  • Transfira a versão 7.1.4 do PHP (x64) não segura para threadsDownload PHP 7.1.4 non-thread safe (x64) version
  • Instale o PHP e veja o manual do PHP para mais configuraçõesInstall PHP and refer to the PHP manual for further configuration
  • O código utiliza a classe pgsql (php_pgsql.so).The code uses the pgsql class (php_pgsql.so). Instale-o ao executar sudo apt-get install php-pgsql.Install it by running sudo apt-get install php-pgsql.
  • Ative a extensão pgsql ao editar o ficheiro de configuração /etc/php/7.0/mods-available/pgsql.ini.Enabled the pgsql extension by editing the /etc/php/7.0/mods-available/pgsql.ini configuration file. O ficheiro de configuração deve conter uma linha com o texto extension=php_pgsql.so.The configuration file should contain a line with the text extension=php_pgsql.so. Se não for apresentado, adicione o texto e guarde o ficheiro.If it is not shown, add the text and save the file. Se o texto estiver presente, mas comentado com um prefixo de ponto e vírgula, remova os comentários do texto ao remover o ponto e vírgula.If the text is present, but commented with a semicolon prefix, uncomment the text by removing the semicolon.

MacOSMacOS

Obter informações da ligaçãoGet connection information

Obtenha as informações de ligação necessárias para se ligar à Base de Dados do Azure para PostgreSQL.Get the connection information needed to connect to the Azure Database for PostgreSQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.You need the fully qualified server name and login credentials.

  1. Inicie sessão no Portal do Azure.Log in to the Azure portal.
  2. No menu esquerdo do portal do Azure, clique em Todos os recursos e, em seguida, procure o servidor que acabou de criar, (por exemplo, mydemoserver).From the left-hand menu in Azure portal, click All resources, and then search for the server you have created (such as mydemoserver).
  3. Clique no nome do servidor.Click the server name.
  4. No painel Descrição geral do servidor, tome nota do Nome do servidor e do Nome de início de sessão de administrador do servidor.From the server's Overview panel, make a note of the Server name and Server admin login name. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel.If you forget your password, you can also reset the password from this panel. Nome do servidor da Base de Dados do Azure para PostgreSQLAzure Database for PostgreSQL server name

Ligar e criar uma tabelaConnect and create a table

Utilize o código seguinte para ligar e criar uma tabela com a instrução SQL CREATE TABLE, seguida das instruções SQL INSERT INTO para adicionar linhas à tabela.Use the following code to connect and create a table using CREATE TABLE SQL statement, followed by INSERT INTO SQL statements to add rows into the table.

O código chama o método pg_connect() para ligar à Base de Dados do Azure para PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Em seguida, chama o método pg_query() várias vezes para executar vários comandos e pg_last_error() para verificar os detalhes, se tiver ocorrido um erro.Then it calls method pg_query() several times to run several commands, and pg_last_error() to check the details if an error occurred each time. Em seguida, chama o método pg_close() para fechar a ligação.Then it calls method pg_close() to close the connection.

Substitua os parâmetros $host, $database, $user e $password pelos seus próprios valores.Replace the $host, $database, $user, and $password parameters with your own values.

<?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 connection to database.<br/>";

    // Drop previous table of 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 table.
    $name = '\'banana\'';
    $quantity = 150;
    $query = "INSERT INTO inventory (name, quantity) VALUES ($1, $2);";
    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);
?>

Ler dadosRead data

Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT.Use the following code to connect and read the data using a SELECT SQL statement.

O código chama o método pg_connect() para ligar à Base de Dados do Azure para PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Em seguida, chama o método pg_query() para executar o comando SELECT ao manter os resultados num conjunto de resultados, e pg_last_error() para verificar os detalhes se tiver ocorrido um erro.Then it calls method pg_query() to run the SELECT command, keeping the results in a result set, and pg_last_error() to check the details if an error occurred. Para ler o conjunto de resultados, é chamado o método pg_fetch_row() num ciclo, uma vez por linha, e os dados das linhas são obtidos numa matriz $row, com um valor de dados por coluna em cada posição de matriz.To read the result set, method pg_fetch_row() is called in a loop, once per row, and the row data is retrieved in an array $row, with one data value per column in each array position. Para libertar o conjunto de resultados, é chamado o método pg_free_result().To free the result set, method pg_free_result() is called. Em seguida, chama o método pg_close() para fechar a ligação.Then it calls method pg_close() to close the connection.

Substitua os parâmetros $host, $database, $user e $password pelos seus próprios valores.Replace the $host, $database, $user, and $password parameters with your own values.

<?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 connection to 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);
?>

Atualizar dadosUpdate data

Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.Use the following code to connect and update the data using a UPDATE SQL statement.

O código chama o método pg_connect() para ligar à Base de Dados do Azure para PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Em seguida, chama o método pg_query() para executar um comando e pg_last_error() para verificar os detalhes, se tiver ocorrido um erro.Then it calls method pg_query() to run a command, and pg_last_error() to check the details if an error occurred. Em seguida, chama o método pg_close() para fechar a ligação.Then it calls method pg_close() to close the connection.

Substitua os parâmetros $host, $database, $user e $password pelos seus próprios valores.Replace the $host, $database, $user, and $password parameters with your own values.

<?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 connection to database. <br/>";

    // Modify some data in 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);
?>

Eliminar dadosDelete data

Utilize o código seguinte para se ligar e ler os dados com a instrução SQL DELETE.Use the following code to connect and read the data using a DELETE SQL statement.

O código chama o método pg_connect() para ligar à Base de Dados do Azure para PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Em seguida, chama o método pg_query() para executar um comando e pg_last_error() para verificar os detalhes, se tiver ocorrido um erro.Then it calls method pg_query() to run a command, and pg_last_error() to check the details if an error occurred. Em seguida, chama o método pg_close() para fechar a ligação.Then it calls method pg_close() to close the connection.

Substitua os parâmetros $host, $database, $user e $password pelos seus próprios valores.Replace the $host, $database, $user, and $password parameters with your own values.

<?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 connection to database. <br/>";

    // Delete some data from 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);
?>

Passos seguintesNext steps