Démarrage rapide : Utiliser PHP afin de se connecter à Azure Database pour PostgreSQL et d’interroger les données – Serveur unique

S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur unique

Important

Azure Database pour PostgreSQL - Serveur unique est en voie de mise hors service. Nous vous recommandons vivement de procéder à une mise à niveau vers un serveur flexible Azure Database pour PostgreSQL. Pour plus d’informations sur la migration vers le Serveur flexible Azure Database pour PostgreSQL, consultez l’article Qu’arrive-t-il au Serveur unique Azure Database pour PostgreSQL ?.

Ce guide de démarrage rapide vous explique comment vous connecter à une base de données Azure pour PostgreSQL en utilisant une application PHP. Il détaille l’utilisation d’instructions SQL pour interroger la base de données, la mettre à jour, y insérer des données ou en supprimer. Cet article suppose que vous connaissez les bases du développement via PHP, et que vous ne savez pas utiliser Azure Database pour PostgreSQL.

Prérequis

Ce guide de démarrage rapide s’appuie sur les ressources créées dans l’un de ces guides :

Installer PHP

Installez PHP sur votre serveur, ou créez une application web Azure incluant PHP.

Windows

  • Téléchargez la version non thread-safe de PHP 7.1.4 (x64)
  • Installez PHP et consultez le manuel sur PHP pour poursuivre la configuration
  • Le code utilise la classe pgsql (ext/php_pgsql.dll) qui est incluse dans l’installation de PHP.
  • Activez l’extension pgsql en modifiant le fichier de configuration php.ini, qui se trouve généralement ici : C:\Program Files\PHP\v7.1\php.ini. Le fichier de configuration doit contenir une ligne présentant le texte extension=php_pgsql.so. Si elle n’apparaît pas, ajoutez le texte et enregistrez le fichier. Si le texte est présent, mais mis en commentaire avec un préfixe point-virgule, supprimez les marques de commentaire en retirant le point-virgule.

Linux (Ubuntu)

  • Téléchargez la version non thread-safe de PHP 7.1.4 (x64)
  • Installez PHP et consultez le manuel sur PHP pour poursuivre la configuration
  • Le code utilise la classe pgsql (php_pgsql.so). Installez-la en exécutant la commande sudo apt-get install php-pgsql.
  • Activez l’extension pgsql en modifiant le fichier de configuration /etc/php/7.0/mods-available/pgsql.ini. Le fichier de configuration doit contenir une ligne présentant le texte extension=php_pgsql.so. Si elle n’apparaît pas, ajoutez le texte et enregistrez le fichier. Si le texte est présent, mais mis en commentaire avec un préfixe point-virgule, supprimez les marques de commentaire en retirant le point-virgule.

MacOS

Obtenir des informations de connexion

Obtenez les informations de connexion requises pour vous connecter à la base de données Azure pour PostgreSQL. Vous devez disposer du nom de serveur complet et des informations d’identification.

  1. Connectez-vous au portail Azure.
  2. Dans le menu de gauche du portail Azure, sélectionnez Toutes les ressources, puis recherchez le serveur que vous venez de créer, par exemple mydemoserver.
  3. Sélectionnez le nom du serveur.
  4. Dans le panneau Vue d’ensemble du serveur, notez le nom du serveur et le nom de connexion de l’administrateur du serveur. Si vous oubliez votre mot de passe, vous pouvez également le réinitialiser dans ce panneau. Nom du serveur Azure Database pour PostgreSQL

Se connecter et créer une table

Utilisez le code suivant pour vous connecter et créer une table à l’aide de l’instruction CREATE TABLE, suivie des instructions SQL INSERT INTO pour ajouter des lignes à la table.

Le code appelle la méthode pg_connect() pour se connecter à la base de données Azure pour PostgreSQL. Ensuite, il appelle la méthode pg_query() plusieurs fois pour exécuter plusieurs commandes, et la méthode pg_last_error() pour vérifier les détails, si une erreur s’est produite à chaque fois. Enfin, il appelle la méthode pg_close() pour fermer la connexion.

Remplacez les paramètres $host, $database, $user et $password par vos propres valeurs.

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

Lire les données

Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL SELECT.

Le code appelle la méthode pg_connect() pour se connecter à la base de données Azure pour PostgreSQL. Ensuite, il appelle la méthode pg_query() pour exécuter la commande SELECT, en conservant les résultats dans un jeu de résultats, et la méthode pg_last_error() pour vérifier les détails, si une erreur s’est produite. Pour lire le jeu de résultats, le système appelle la méthode pg_fetch_row() en boucle, une fois par ligne, et récupère les données des lignes dans un tableau $row, en affichant une valeur de données par colonne dans chaque position dans le tableau. Pour libérer le jeu de résultats, le système appelle la méthode pg_free_result(). Enfin, il appelle la méthode pg_close() pour fermer la connexion.

Remplacez les paramètres $host, $database, $user et $password par vos propres valeurs.

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

Mettre à jour des données

Utilisez le code suivant pour vous connecter et mettre à jour les données à l’aide d’une instruction SQL UPDATE.

Le code appelle la méthode pg_connect() pour se connecter à la base de données Azure pour PostgreSQL. Ensuite, il appelle la méthode pg_query() pour exécuter une commande, et la méthode pg_last_error() pour vérifier les détails, si une erreur s’est produite. Enfin, il appelle la méthode pg_close() pour fermer la connexion.

Remplacez les paramètres $host, $database, $user et $password par vos propres valeurs.

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

Suppression de données

Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL DELETE.

Le code appelle la méthode pg_connect() pour se connecter à la base de données Azure pour PostgreSQL. Ensuite, il appelle la méthode pg_query() pour exécuter une commande, et la méthode pg_last_error() pour vérifier les détails, si une erreur s’est produite. Enfin, il appelle la méthode pg_close() pour fermer la connexion.

Remplacez les paramètres $host, $database, $user et $password par vos propres valeurs.

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

Nettoyer les ressources

Pour nettoyer toutes les ressources utilisées dans le cadre de ce guide de démarrage rapide, supprimez le groupe de ressources à l’aide de la commande suivante :

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

Étapes suivantes