Schnellstart: Verwenden von PHP zum Herstellen einer Verbindung mit einem Azure Database for PostgreSQL-Einzelserver sowie zum Abfragen von Daten

GILT FÜR: Azure Database for PostgreSQL – Single Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexibler Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexibler Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Einzelserver?.

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 diesem Schnellstart werden die Ressourcen, die in den folgenden Anleitungen erstellt wurden, als Startpunkt verwendet:

Installieren von PHP

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

Windows

  • Herunterladen von Version PHP 7.1.4 Non-Thread Safe (x64)
  • 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 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 Semikolon als Präfix als Kommentar gekennzeichnet ist, können Sie die Kommentierung aufheben, indem Sie das Semikolon entfernen.

Linux (Ubuntu)

  • Herunterladen von Version PHP 7.1.4 Non-Thread Safe (x64)
  • 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 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 Semikolon als Präfix als Kommentar gekennzeichnet ist, können Sie die Kommentierung aufheben, indem Sie das Semikolon entfernen.

MacOS

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.

  1. Melden Sie sich beim Azure-Portalan.
  2. Wählen Sie im Azure-Portal im linken Menü Alle Ressourcen aus, und suchen Sie dann nach dem Server, den Sie erstellt haben (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. Name des Azure Database for PostgreSQL-Servers

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.

Im Code wird die pg_connect()-Methode aufgerufen, um eine Verbindung mit 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 eigenen 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 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 ($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.

Im Code wird die pg_connect()-Methode aufgerufen, um eine Verbindung mit 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 eigenen 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 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);
?>

Aktualisieren von Daten

Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und die Daten per UPDATE-SQL-Anweisung zu aktualisieren.

Im Code wird die pg_connect()-Methode aufgerufen, um eine Verbindung mit 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 eigenen 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 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);
?>

Löschen von Daten

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

Im Code wird die pg_connect()-Methode aufgerufen, um eine Verbindung mit 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 eigenen 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 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);
?>

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

Nächste Schritte