Schnellstart: Verwenden von PHP zum Herstellen einer Verbindung mit Azure Database for PostgreSQL Flexible Server sowie zum Abfragen von Daten
GILT FÜR: Azure Database for PostgreSQL – Flexibler Server
Dieser Schnellstart zeigt, wie Sie mit einer PHP-Anwendung eine Verbindung mit einer Azure-Datenbank für 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 Abschnitt wird davon ausgegangen, dass Sie mit der PHP-Entwicklung vertraut sind und noch keine Erfahrung mit Azure Database for PostgreSQL haben.
Voraussetzungen
In dieser Schnellstartanleitung werden die Ressourcen verwendet, die in Erstellen einer Instanz von Azure Database for PostgreSQL – Flexibler Server als Ausgangspunkt erstellt wurde.
Installieren von PHP
Installieren Sie PHP auf Ihrem Server, oder erstellen Sie eine Azure-Web-App, die PHP enthält.
Windows
- Laden Sie PHP 7.1.4 Nonthread Safe (x64) Version herunter
- Installieren von PHP (Informationen zur weiteren Konfiguration finden Sie im PHP-Handbuch)
- Im Code wird die pgsql-Klasse (ext/php_pgsql.dll) verwendet, die in der PHP-Installation enthalten ist.
- Aktivieren Sie die pgsql-Erweiterung, indem Sie die Konfigurationsdatei „php.ini“ bearbeiten, die sich normalerweise unter
C:\Program Files\PHP\v7.1\php.ini
befindet. Die Konfigurationsdatei sollte eine Zeile mit dem Textextension=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 Semikolon als Präfix als Kommentar gekennzeichnet ist, können Sie die Kommentierung aufheben, indem Sie das Semikolon entfernen.
Linux (Ubuntu)
- Laden Sie PHP 7.1.4 Nonthread Safe (x64) Version herunter
- Installieren von PHP (Informationen zur weiteren Konfiguration finden Sie im PHP-Handbuch)
- Im Code wird die pgsql-Klasse (php_pgsql.so) verwendet. Installieren Sie sie, indem Sie
sudo apt-get install php-pgsql
ausführen. - Aktivieren Sie die pgsql-Erweiterung, indem Sie die Konfigurationsdatei
/etc/php/7.0/mods-available/pgsql.ini
bearbeiten. Die Konfigurationsdatei sollte eine Zeile mit dem Textextension=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 Semikolon als Präfix als Kommentar gekennzeichnet ist, können Sie die Kommentierung aufheben, indem Sie das Semikolon entfernen.
macOS
- Herunterladen der Version PHP 7.1.4
- Installieren von PHP (Informationen zur weiteren Konfiguration finden Sie im PHP-Handbuch)
Abrufen von Verbindungsinformationen
Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure-Datenbank für PostgreSQL erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.
- Melden Sie sich beim Azure-Portalan.
- Wählen Sie im linken Menü im Azure-Portal Alle Ressourcen aus, und suchen Sie dann nach Ihrem erstellten Server (z. B. mydemoserver).
- Wählen Sie den Servernamen aus.
- 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);
?>
Lesen von Daten
Verwenden Sie den folgenden Code, um die Daten mit einer SELECT-SQL-Anweisung zu verbinden und zu lesen.
Die Codeaufrufmethode pg_connect() wird verwendet, um eine Verbindung mit der Azure-Datenbank für PostgreSQL herzustellen. Anschließend wird die pg_query()-Methode aufgerufen, um den SELECT-Befehl auszuführen, und die Ergebnisse werden in einem Resultset zusammengefasst. Mit pg_last_error() werden die Details überprüft, falls ein Fehler auftritt. Zum Lesen des Resultsets wird die pg_fetch_row()-Methode in einer Schleife aufgerufen (einmal pro Zeile), und die Zeilendaten werden im Array $row
abgerufen, das für jede Arrayposition einen Datenwert pro Spalte enthält. Zum Freigeben des Resultsets wird die pg_free_result()-Methode aufgerufen. 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/>";
// 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 eine Verbindung herzustellen und die Daten per UPDATE-SQL-Anweisung zu aktualisieren.
Die Codeaufrufmethode pg_connect() wird verwendet, um eine Verbindung mit der Azure-Datenbank für PostgreSQL herzustellen. Anschließend wird die pg_query()-Methode aufgerufen, um einen Befehl auszuführen, und pg_last_error(), um beim Auftreten eines Fehlers die Details zu überprüfen. 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/>";
// 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 die Daten mit einer DELETE-SQL-Anweisung zu verbinden und zu lesen.
Die Codeaufrufmethode pg_connect() wird verwendet, um eine Verbindung mit der Azure-Datenbank für PostgreSQL herzustellen. Anschließend wird die pg_query()-Methode aufgerufen, um einen Befehl auszuführen, und pg_last_error(), um beim Auftreten eines Fehlers die Details zu überprüfen. 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/>";
// 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
Löschen Sie die Ressourcengruppe mit dem folgenden Befehl, um alle in dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Zugehöriger Inhalt
- Verwalten von Azure Database for PostgreSQL – Flexibler Server.
- Schnellstart: Verwenden von Python zum Herstellen einer Verbindung aus einer Instanz von Azure Database for PostgreSQL Flexible Server sowie zum Abfragen von Daten.
- Schnellstart: Verwenden von Java zum Verbinden und Abfragen von Daten aus einer Instanz der Azure Database for PostgreSQL – Flexibler Server.
- Schnellstart: Verwenden von .NET (C#) zum Verbinden und Abfragen von Daten aus einer Instanz von Azure Database for PostgreSQL – Flexibler Server.
- Schnellstart: Verwenden von der Sprache Go zum Verbinden und Abfragen von Daten aus einer Instanz von Azure Database for PostgreSQL – Flexibler Server.
- Schnellstart: Verwenden von Azure CLI zum Verbinden und Abfragen von Daten aus einer Instanz der Azure Database for PostgreSQL – Flexibler Server.
- Schnellstart: Importieren von Daten aus Azure Database for PostgreSQL – Flexibler Server in Power BI.