Schnellstart: Verwenden von PHP zum Verbinden und Abfragen von Daten in Azure Database for PostgreSQL flexiblen Server

In dieser Schnellstartanleitung wird veranschaulicht, wie Sie mithilfe einer PHP-Anwendung eine Verbindung mit einer Azure Database for PostgreSQL herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden. Bei den Schritten in diesem Artikel wird davon ausgegangen, dass Sie mit der Entwicklung mithilfe von PHP vertraut sind und mit Azure Database for PostgreSQL noch nicht vertraut sind.

Voraussetzungen

In dieser Schnellstartanleitung werden die ressourcen verwendet, die in der Erstellung einer Azure-Datenbank für PostgreSQL als Ausgangspunkt erstellt wurden.

Installieren von PHP

Installieren Sie PHP auf Ihrem Server, oder erstellen Sie eine Azure-Web-App, die PHP enthält.

Fenster

  • Laden Sie die Version PHP 7.1.4 nonthread safe (x64) herunter.
  • Installieren Sie PHP, und informieren Sie sich im PHP-Handbuch über die weitere Konfiguration.
  • Der Code verwendet die pgsql-Klasse (ext/php_pgsql.dll), die in der PHP-Installation enthalten ist.
  • Aktivieren Sie die pgsql-Erweiterung , indem Sie die php.ini Konfigurationsdatei bearbeiten, in der Regel unter C:\Program Files\PHP\v7.1\php.ini. Die Konfigurationsdatei sollte eine Zeile mit dem Text extension=php_pgsql.so enthalten. Fügen Sie den Text hinzu, und speichern Sie die Datei, falls der Text nicht bereits angezeigt wird. Wenn der Text vorhanden ist, aber mit einem vorangestellten Semikolon auskommentiert wurde, entfernen Sie das Semikolon, um den Text wieder freizuschalten.

Linux (Ubuntu)

  • Laden Sie die Version PHP 7.1.4 nonthread safe (x64) herunter.
  • Installieren Sie PHP, und informieren Sie sich im PHP-Handbuch über die weitere Konfiguration.
  • Im Code wird die pgsql-Klasse (php_pgsql.so) verwendet. Installieren Sie es, indem Sie ausführen sudo apt-get install php-pgsql.
  • Aktivieren Sie die pgsql-Erweiterung , indem Sie die /etc/php/7.0/mods-available/pgsql.ini Konfigurationsdatei bearbeiten. Die Konfigurationsdatei sollte eine Zeile mit dem Text extension=php_pgsql.so enthalten. Fügen Sie den Text hinzu, und speichern Sie die Datei, falls der Text nicht bereits angezeigt wird. Wenn der Text vorhanden ist, aber mit einem vorangestellten Semikolon auskommentiert wurde, entfernen Sie das Semikolon, um den Text wieder freizuschalten.

macOS

Abrufen von Verbindungsinformationen

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure Database for PostgreSQL-Datenbank erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Authentifizierungsanmeldeinformationen.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie im linken Menü im Azure-Portal Alle Ressourcen aus, und suchen Sie dann nach Ihrem erstellten Server (z. B. mydemoserver).
  3. Wählen Sie den Servernamen aus.
  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen.

Herstellen einer Verbindung und Erstellen einer Tabelle

Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und eine Tabelle zu erstellen, indem Sie eine CREATE TABLE-SQL-Anweisung gefolgt von INSERT INTO-SQL-Anweisungen zum Hinzufügen von Zeilen zur Tabelle nutzen.

Die Codeaufrufmethode pg_connect() wird verwendet, um eine Verbindung mit der Azure-Datenbank für PostgreSQL herzustellen. Anschließend wird mehrfach die pg_query()-Methode aufgerufen, um mehrere Befehle auszuführen, und mit pg_last_error() werden jeweils die Details überprüft, falls ein Fehler auftritt. Als Nächstes wird die pg_close()-Methode aufgerufen, um die Verbindung zu schließen.

Ersetzen Sie die Parameter $host, $database, $user und $password durch Ihre Werte.

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

Daten lesen

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs SELECT zu verbinden und zu lesen.

Der Code verwendet die funktion pg_connect() zum Herstellen einer Verbindung mit dem Azure Database for PostgreSQL. Anschließend wird pg_query() aufgerufen, um den SELECT-Befehl auszuführen und die Ergebnisse in einem Resultset beizubehalten. Wenn ein Fehler auftritt, ruft der Code pg_last_error() auf, um die Details zu überprüfen. Zum Lesen der Ergebnismenge ruft der Code einmal pro Zeile pg_fetch_row() in einer Schleife auf. Die Zeilendaten werden in einem Array $rowmit einem Datenwert pro Spalte an jeder Arrayposition abgerufen. Um die Ergebnismenge freizugeben, ruft der Code pg_free_result() auf. Nach Abschluss ruft der Code pg_close() auf, um die Verbindung zu schließen.

Ersetzen Sie die Parameter $host, $database, $user und $password durch Ihre Werte.

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

Aktualisieren von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs UPDATE zu verbinden und zu aktualisieren.

Der Code verwendet die funktion pg_connect() zum Herstellen einer Verbindung mit dem Azure Database for PostgreSQL. Anschließend wird pg_query() aufgerufen, um einen Befehl auszuführen. Wenn ein Fehler auftritt, ruft der Code pg_last_error() auf, um die Details zu überprüfen. Nach Abschluss ruft der Code pg_close() auf, um die Verbindung zu schließen.

Ersetzen Sie die Parameter $host, $database, $user und $password durch Ihre Werte.

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

Löschen von Daten

Verwenden Sie den folgenden Code, um eine Verbindung mit der Datenbank herzustellen und Daten mithilfe einer DELETE SQL-Anweisung zu löschen.

Der Code verwendet die funktion pg_connect() zum Herstellen einer Verbindung mit dem Azure Database for PostgreSQL. Anschließend wird pg_query() aufgerufen, um einen Befehl auszuführen. Wenn ein Fehler auftritt, ruft der Code pg_last_error() auf, um die Details zu überprüfen. Nach Abschluss ruft der Code pg_close() auf, um die Verbindung zu schließen.

Ersetzen Sie die Parameter $host, $database, $user und $password durch Ihre Werte.

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

Bereinigen von Ressourcen

Um alle während dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen, löschen Sie die Ressourcengruppe mithilfe des folgenden Befehls:

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