Quickstart: PHP gebruiken om verbinding te maken met en query's uit te voeren op gegevens in Azure Database for PostgreSQL - Enkele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

In deze snelstartgids ziet u hoe u met behulp van een PHP-toepassing verbinding maakt met een Azure Database voor PostgreSQL. U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen. In de stappen van dit artikel wordt ervan uitgegaan dat u bekend bent met het ontwikkelen met behulp van PHP en geen ervaring hebt met het werken met Azure Database for PostgreSQL.

Vereisten

In deze snelstartgids worden de resources die in een van deze handleidingen zijn gemaakt, als uitgangspunt gebruikt:

PHP installeren

Installeer PHP op uw eigen server of maak een Azure-web-app die PHP omvat.

Windows

  • PHP versie 7.1.4 non-thread safe (x64) downloaden
  • PHP installeren en de PHP-handleiding bekijken voor verdere configuratie
  • In de code wordt de klasse pgsql (ext/php_pgsql.dll) gebruikt; deze is opgenomen in de PHP-installatie.
  • Schakel de pgsql-extensie in door het configuratiebestand php.ini te bewerken. Dit staat gewoonlijk in C:\Program Files\PHP\v7.1\php.ini. Het configuratiebestand moet een regel bevatten met de tekst extension=php_pgsql.so. Als deze niet wordt weergegeven, voegt u de tekst toe en slaat u het bestand op. Als de tekst aanwezig is, maar met behulp van het voorvoegsel puntkomma als opmerking is gemarkeerd, haalt u de puntkomma weg zodat de tekst geen opmerking meer is.

Linux (Ubuntu)

  • PHP versie 7.1.4 non-thread safe (x64) downloaden
  • PHP installeren en de PHP-handleiding bekijken voor verdere configuratie
  • In de code wordt de pgsql klasse (php_pgsql.so) gebruikt. Installeer deze door sudo apt-get install php-pgsql uit te voeren.
  • Schakel de pgsql-extensie in door het configuratiebestand php.ini te bewerken. Dit staat doorgaans in /etc/php/7.0/mods-available/pgsql.ini. Het configuratiebestand moet een regel bevatten met de tekst extension=php_pgsql.so. Als deze niet wordt weergegeven, voegt u de tekst toe en slaat u het bestand op. Als de tekst aanwezig is, maar met behulp van het voorvoegsel puntkomma als opmerking is gemarkeerd, haalt u de puntkomma weg zodat de tekst geen opmerking meer is.

macOS

Verbindingsgegevens ophalen

Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met de Azure Database voor PostgreSQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.

  1. Meld u aan bij Azure Portal.
  2. Selecteer in het menu aan de linkerkant in de Azure-portal Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
  3. Selecteer de servernaam.
  4. Ga naar het venster Overzicht van de server en noteer de Servernaam en de Aanmeldingsnaam van de serverbeheerder. Als u uw wachtwoord vergeet, kunt u het wachtwoord in dit venster opnieuw instellen. Servernaam Azure Database for PostgreSQL

Verbinding maken en een tabel maken

Gebruik de volgende code om een tabel te verbinden en te maken met de SQL-instructie CREATE TABLE, gevolgd door INSERT INTO-instructies om rijen in de tabel toe te voegen.

In de code wordt methode pg_connect() aangeroepen om verbinding te maken met Azure Database voor PostgreSQL. Vervolgens wordt methode pg_query() een aantal keer aangeroepen om diverse opdrachten uit te voeren, en wordt pg_last_error() aangeroepen om de details te controleren telkens wanneer er een fout is opgetreden. Vervolgens wordt methode pg_close() aangeroepen om de verbinding te sluiten.

Vervang de parameters $host, $database, $user en $password door uw eigen waarden.

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

Gegevens lezen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie SELECT.

In de code wordt methode pg_connect() aangeroepen om verbinding te maken met Azure Database voor PostgreSQL. Vervolgens wordt methode pg_query() aangeroepen om de SELECT-opdracht uit te voeren, waarbij de resultaten worden vastgehouden in een resultatenset, en wordt pg_last_error() uitgevoerd om de details te controleren als er een fout is opgetreden. Om de resultatenset te lezen, wordt methode pg_fetch_row() in een lus aangeroepen, eenmaal per rij, en worden de rijgegevens opgehaald in een matrix $row, met één waarde per kolom in elke matrixpositie. Methode pg_free_result() wordt aangeroepen om de resultatenset vrij te geven. Vervolgens wordt methode pg_close() aangeroepen om de verbinding te sluiten.

Vervang de parameters $host, $database, $user en $password door uw eigen waarden.

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

Gegevens bijwerken

Gebruik de volgende code om verbinding te maken en de gegevens bij te werken met de SQL-instructie UPDATE.

In de code wordt methode pg_connect() aangeroepen om verbinding te maken met Azure Database voor PostgreSQL. Vervolgens wordt methode pg_query() een aantal keer aangeroepen om een opdracht uit te voeren, en wordt pg_last_error() aangeroepen om de details te controleren als er een fout is opgetreden. Vervolgens wordt methode pg_close() aangeroepen om de verbinding te sluiten.

Vervang de parameters $host, $database, $user en $password door uw eigen waarden.

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

Gegevens verwijderen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie DELETE.

In de code wordt methode pg_connect() aangeroepen om verbinding te maken met Azure Database voor PostgreSQL. Vervolgens wordt methode pg_query() een aantal keer aangeroepen om een opdracht uit te voeren, en wordt pg_last_error() aangeroepen om de details te controleren als er een fout is opgetreden. Vervolgens wordt methode pg_close() aangeroepen om de verbinding te sluiten.

Vervang de parameters $host, $database, $user en $password door uw eigen waarden.

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

Resources opschonen

Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:

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

Volgende stappen