Condividi tramite


Guida introduttiva: Usare PHP per connettersi ed eseguire query sui dati in Database di Azure per PostgreSQL - Server flessibile

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

Questa guida introduttiva illustra la connessione a un Database di Azure per PostgreSQL usando un'applicazione PHP. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database. I passaggi descritti in questo articolo presuppongono che si abbia familiarità con lo sviluppo con PHP e non si abbia familiarità con Database di Azure per PostgreSQL.

Prerequisiti

Questa guida introduttiva usa le risorse create in Creare un'istanza di Database di Azure per PostgreSQL - Server flessibile come punto di partenza.

Installare PHP

Installare PHP nel server o creare un'app Web di Azure che include PHP.

Finestre

  • Scaricare la versione php 7.1.4 non thread safe (x64)
  • Installare PHP e vedere il manuale di PHP per le altre opzioni di configurazione
  • Il codice usa la classe pgsql (ext/php_pgsql.dll) inclusa nell'installazione di PHP.
  • 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. Il file di configurazione dovrebbe contenere una riga con il testo extension=php_pgsql.so. Se non viene visualizzato, aggiungere il testo e salvare il file. Se il testo è presente ma commentato con un prefisso punto e virgola, rimuovere il commento dal testo rimuovendo il punto e virgola.

Linux (Ubuntu)

  • Scaricare la versione php 7.1.4 non thread safe (x64)
  • Installare PHP e vedere il manuale di PHP per le altre opzioni di configurazione
  • Il codice usa la classe pgsql class (php_pgsql.so). Installarla eseguendo sudo apt-get install php-pgsql.
  • Abilitare l'estensione pgsql modificando il file di configurazione /etc/php/7.0/mods-available/pgsql.ini. Il file di configurazione dovrebbe contenere una riga con il testo extension=php_pgsql.so. Se non viene visualizzato, aggiungere il testo e salvare il file. Se il testo è presente ma commentato con un prefisso punto e virgola, rimuovere il commento dal testo rimuovendo il punto e virgola.

macOS

Ottenere informazioni di connessione

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per PostgreSQL. Sono necessari il nome del server completo e le credenziali di accesso.

  1. Accedere al portale di Azure.
  2. Nel menu a sinistra nel portale di Azure selezionare Tutte le risorse e quindi cercare il server creato( ad esempio mydemoserver).
  3. Selezionare il nome del server.
  4. Nel pannello Panoramica del server prendere nota dei valori riportati in Nome server e Nome di accesso dell'amministratore server. Se si dimentica la password, in questo pannello è anche possibile reimpostarla.

Connettersi e creare una tabella

Usare il codice seguente per connettersi e creare una tabella usando l'istruzione SQL CREATE TABLE , seguita dalle istruzioni INSERT INTO SQL per aggiungere righe alla tabella.

Il metodo di chiamata di codice pg_connect() viene usato per connettersi alla Database di Azure per PostgreSQL. Chiama quindi il metodo , pg_query() , più volte per eseguire diversi comandi e pg_last_error() per controllare i dettagli se si è verificato un errore ogni volta. Chiama quindi il metodo pg_close() per chiudere la connessione.

Sostituire i $hostparametri , $user$database, e $password con i valori.

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

Leggere i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT.

Il metodo di chiamata di codice pg_connect() viene usato per connettersi alla Database di Azure per 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. 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. Per liberare il set di risultati, viene chiamato il metodo pg_free_result(). Chiama infine il metodo pg_close() per chiudere la connessione.

Sostituire i $hostparametri , $user$database, e $password con i valori.

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

Aggiornamento dei dati

Usare il codice seguente per connettersi e aggiornare i dati usando un'istruzione SQL UPDATE.

Il metodo di chiamata di codice pg_connect() viene usato per connettersi alla Database di Azure per PostgreSQL. Chiama quindi il metodo pg_query() per eseguire un comando e pg_last_error() per controllare i dettagli se si è verificato un errore. Chiama infine il metodo pg_close() per chiudere la connessione.

Sostituire i $hostparametri , $user$database, e $password con i valori.

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

Eliminare dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL DELETE.

Il metodo di chiamata di codice pg_connect() viene usato per connettersi alla Database di Azure per PostgreSQL. Chiama quindi il metodo pg_query() per eseguire un comando e pg_last_error() per controllare i dettagli se si è verificato un errore. Chiama infine il metodo pg_close() per chiudere la connessione.

Sostituire i $hostparametri , $user$database, e $password con i valori.

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

Pulire le risorse

Per pulire tutte le risorse usate in questo argomento di avvio rapido, eliminare il gruppo di risorse con il comando seguente:

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