Database di Azure per PostgreSQL: usare PHP per connettersi ai dati ed eseguire queryAzure Database for PostgreSQL: Use PHP to connect and query data

Questa guida introduttiva illustra come connettersi a un database di Azure per PostgreSQL usando un'applicazione PHP.This quickstart demonstrates how to connect to an Azure Database for PostgreSQL using a PHP application. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database.It shows how to use SQL statements to query, insert, update, and delete data in the database. Le procedure descritte in questo articolo presuppongono che si abbia familiarità con lo sviluppo con PHP, ma non con Database di Azure per 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.

PrerequisitiPrerequisites

Questa guida introduttiva usa le risorse create in una delle guide seguenti come punto di partenza:This quickstart uses the resources created in either of these guides as a starting point:

Installare PHPInstall PHP

Installare PHP nel server o creare un'app Web di Azure che includa PHP.Install PHP on your own server, or create an Azure web app that includes PHP.

WindowsWindows

  • Scaricare PHP versione 7.1.4 non thread-safe (x64)Download PHP 7.1.4 non-thread safe (x64) version
  • Installare PHP e vedere il manuale di PHP per le altre opzioni di configurazioneInstall PHP and refer to the PHP manual for further configuration
  • Il codice usa la classe pgsql (ext/php_pgsql.dll) inclusa nell'installazione di PHP.The code uses the pgsql class (ext/php_pgsql.dll) that is included in the PHP installation.
  • Abilitare l'estensione pgsql modificando il file di configurazione php.ini, che in genere si trova in 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. Il file di configurazione dovrebbe contenere una riga con il testo extension=php_pgsql.so.The configuration file should contain a line with the text extension=php_pgsql.so. Se non è visualizzata, aggiungere il testo e salvare il file.If it is not shown, add the text and save the file. Se il testo è presente, ma commentato con un punto e virgola come prefisso, rimuovere il commento dal testo rimuovendo il punto e virgola.If the text is present, but commented with a semicolon prefix, uncomment the text by removing the semicolon.

Linux (Ubuntu)Linux (Ubuntu)

  • Scaricare PHP versione 7.1.4 non thread-safe (x64)Download PHP 7.1.4 non-thread safe (x64) version
  • Installare PHP e vedere il manuale di PHP per le altre opzioni di configurazioneInstall PHP and refer to the PHP manual for further configuration
  • Il codice usa la classe pgsql class (php_pgsql.so).The code uses the pgsql class (php_pgsql.so). Installarla eseguendo sudo apt-get install php-pgsql.Install it by running sudo apt-get install php-pgsql.
  • Abilitare l'estensione pgsql modificando il file di configurazione /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. Il file di configurazione dovrebbe contenere una riga con il testo extension=php_pgsql.so.The configuration file should contain a line with the text extension=php_pgsql.so. Se non è visualizzata, aggiungere il testo e salvare il file.If it is not shown, add the text and save the file. Se il testo è presente, ma commentato con un punto e virgola come prefisso, rimuovere il commento dal testo rimuovendo il punto e virgola.If the text is present, but commented with a semicolon prefix, uncomment the text by removing the semicolon.

MacOSMacOS

Ottenere informazioni di connessioneGet connection information

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per PostgreSQL.Get the connection information needed to connect to the Azure Database for PostgreSQL. Sono necessari il nome del server completo e le credenziali di accesso.You need the fully qualified server name and login credentials.

  1. Accedere al Portale di Azure.Log in to the Azure portal.
  2. Nel menu a sinistra nel portale di Azure fare clic su Tutte le risorse e cercare il server creato, ad esempio mypgserver-20170401.From the left-hand menu in Azure portal, click All resources and search for the server you have created, such as mypgserver-20170401.
  3. Fare clic sul nome del server mypgserver-20170401.Click the server name mypgserver-20170401.
  4. Selezionare la pagina Panoramica del server.Select the server's Overview page. Annotare il Nome server e il nome di accesso dell'amministratore del server.Make a note of the Server name and Server admin login name. Database di Azure per PostgreSQL - Accesso dell'amministratore del serverAzure Database for PostgreSQL - Server Admin Login
  5. Se si dimenticano le informazioni di accesso per il server, passare alla pagina Panoramica per visualizzare il nome di accesso dell'amministratore del server e, se necessario, reimpostare la password.If you forget your server login information, navigate to the Overview page to view the Server admin login name and, if necessary, reset the password.

Connettersi e creare una tabellaConnect and create a table

Usare il codice seguente per connettersi e creare una tabella usando l'istruzione SQL CREATE TABLE, seguita dalle istruzioni SQL INSERT INTO per aggiungere righe nella tabella.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.

Il codice chiama il metodo pg_connect() per connettersi a Database di Azure per PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Chiama quindi il metodo pg_query() più volte per eseguire diversi comandi e pg_last_error() ogni volta per controllare i dettagli se si è verificato un errore.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. Chiama infine il metodo pg_close() per chiudere la connessione.Then it calls method pg_close() to close the connection.

Sostituire i parametri $host, $database, $user e $password con valori personalizzati.Replace the $host, $database, $user, and $password parameters with your own values.

<?php
    // Initialize connection variables.
    $host = "mypgserver-20170401.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mypgserver-20170401";
    $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);
?>

Leggere i datiRead data

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT.Use the following code to connect and read the data using a SELECT SQL statement.

Il codice chiama il metodo pg_connect() per connettersi a Database di Azure per PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Chiama quindi il metodo pg_query() per eseguire il comando SELECT, mantenendo i risultati in un set di risultati, e pg_last_error() per controllare i dettagli se si è verificato un errore.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. Per leggere il set di risultati, viene chiamato il metodo pg_fetch_row() in un ciclo, una volta per riga, e i dati della riga vengono recuperati in una matrice $row, con un valore di dati per colonna in ogni posizione della matrice.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. Per liberare il set di risultati, viene chiamato il metodo pg_free_result().To free the result set, method pg_free_result() is called. Chiama infine il metodo pg_close() per chiudere la connessione.Then it calls method pg_close() to close the connection.

Sostituire i parametri $host, $database, $user e $password con valori personalizzati.Replace the $host, $database, $user, and $password parameters with your own values.

<?php
    // Initialize connection variables.
    $host = "mypgserver-20170401.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mypgserver-20170401";
    $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);
?>

Aggiornare i datiUpdate data

Usare il codice seguente per connettersi e aggiornare i dati usando un'istruzione SQL UPDATE.Use the following code to connect and update the data using a UPDATE SQL statement.

Il codice chiama il metodo pg_connect() per connettersi a Database di Azure per PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Chiama quindi il metodo pg_query() per eseguire un comando e pg_last_error() per controllare i dettagli se si è verificato un errore.Then it calls method pg_query() to run a command, and pg_last_error() to check the details if an error occurred. Chiama infine il metodo pg_close() per chiudere la connessione.Then it calls method pg_close() to close the connection.

Sostituire i parametri $host, $database, $user e $password con valori personalizzati.Replace the $host, $database, $user, and $password parameters with your own values.

<?php
    // Initialize connection variables.
    $host = "mypgserver-20170401.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mypgserver-20170401";
    $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);
?>

Eliminare i datiDelete data

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL DELETE.Use the following code to connect and read the data using a DELETE SQL statement.

Il codice chiama il metodo pg_connect() per connettersi a Database di Azure per PostgreSQL.The code call method pg_connect() to connect to Azure Database for PostgreSQL. Chiama quindi il metodo pg_query() per eseguire un comando e pg_last_error() per controllare i dettagli se si è verificato un errore.Then it calls method pg_query() to run a command, and pg_last_error() to check the details if an error occurred. Chiama infine il metodo pg_close() per chiudere la connessione.Then it calls method pg_close() to close the connection.

Sostituire i parametri $host, $database, $user e $password con valori personalizzati.Replace the $host, $database, $user, and $password parameters with your own values.

<?php
    // Initialize connection variables.
    $host = "mypgserver-20170401.postgres.database.azure.com";
    $database = "mypgsqldb";
    $user = "mylogin@mypgserver-20170401";
    $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);
?>

Passaggi successiviNext steps