Inicio rápido: Uso de PHP para conectarse y consultar datos en Azure Database for PostgreSQL: servidor único

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Le recomendamos encarecidamente actualizar al servidor flexible de Azure Database for PostgreSQL. Para más información sobre la migración al servidor flexible de Azure Database for PostgreSQL, consulte ¿Qué sucederá con el servicio de servidor único de Azure Database for PostgreSQL?

En este tutorial rápido se muestra cómo conectarse a una instancia de Azure Database for PostgreSQL mediante una aplicación de PHP. Se indica cómo usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos. En los pasos de este artículo se da por hecho que está familiarizado con el desarrollo mediante PHP, pero que nunca ha trabajado con Azure Database for PostgreSQL.

Prerrequisitos

En este tutorial rápido se usan como punto de partida los recursos creados en una de estas guías:

Instalación de PHP

Instale PHP en su propio servidor o cree una aplicación web de Azure que lo incluya.

Windows

  • Descargue la versión segura 7.1.4 de PHP sin subprocesos (x64).
  • Instale PHP y consulte el manual de PHP para continuar con la configuración.
  • El código usa la clase pgsql (ext/php_pgsql.dll) que se incluye en la instalación de PHP.
  • Ha habilitado la extensión pgsql mediante la edición del archivo de configuración php.ini, que normalmente se encuentra en C:\Program Files\PHP\v7.1\php.ini. El archivo de configuración debe contener una línea con el texto extension=php_pgsql.so. Si no se muestra, agregue el texto y guarde el archivo. Si el texto está presente, pero se ha comentado con un prefijo de punto y coma, quite el punto y coma para quitar la marca de comentario del texto.

Linux (Ubuntu)

  • Descargue la versión segura 7.1.4 de PHP sin subprocesos (x64).
  • Instale PHP y consulte el manual de PHP para continuar con la configuración.
  • El código usa la clase pgsql (php_pgsql.so). Instálela mediante la ejecución de sudo apt-get install php-pgsql.
  • Ha habilitado la extensión pgsql mediante la edición del archivo de configuración /etc/php/7.0/mods-available/pgsql.ini. El archivo de configuración debe contener una línea con el texto extension=php_pgsql.so. Si no se muestra, agregue el texto y guarde el archivo. Si el texto está presente, pero se ha comentado con un prefijo de punto y coma, quite el punto y coma para quitar la marca de comentario del texto.

MacOS

Obtención de información sobre la conexión

Obtenga la información de conexión necesaria para conectarse a Azure Database for PostgreSQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.

  1. Inicie sesión en Azure Portal.
  2. En el menú izquierdo de Azure Portal, seleccione Todos los recursos y, luego, busque el servidor que ha creado, por ejemplo, mydemoserver.
  3. Seleccione el nombre del servidor.
  4. En el panel Información general del servidor, anote el nombre del servidor y el nombre de inicio de sesión del administrador del servidor. Si olvida la contraseña, puede restablecerla en este panel. Nombre del servidor Azure Database for PostgreSQL

Conexión y creación de una tabla

Use el código siguiente para conectarse y crear una tabla mediante la instrucción SQL CREATE TABLE, seguida de las instrucciones SQL INSERT INTO para agregar filas a la tabla.

El código llama al método pg_connect() para conectar con Azure Database for PostgreSQL. A continuación, llama al método pg_query() varias veces para ejecutar varios comandos y a pg_last_error() para consultar los detalles si se produjo un error cada vez. A continuación, llama al método pg_close() para cerrar la conexión.

Reemplace los parámetros $host, $database, $user y $password por sus propios valores.

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

Lectura de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT.

El código llama al método pg_connect() para conectar con Azure Database for PostgreSQL. A continuación, llama al método pg_query() para ejecutar el comando SELECT (los resultados se guardan en un conjunto de resultados) y a pg_last_error() para comprobar los detalles si se ha producido un error. Para leer el conjunto de resultados, se llama al método pg_fetch_row() en un bucle, una vez por cada fila, y los datos de la fila se recuperan en una matriz $row, con un valor de datos por columna en cada posición de dicha matriz. Para liberar el conjunto de resultados, se llama al método pg_free_result(). A continuación, llama al método pg_close() para cerrar la conexión.

Reemplace los parámetros $host, $database, $user y $password por sus propios valores.

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

Actualización de datos

Use el código siguiente para conectarse y actualizar los datos mediante la instrucción SQL UPDATE.

El código llama al método pg_connect() para conectar con Azure Database for PostgreSQL. A continuación, llama al método pg_query() para ejecutar un comando, y a pg_last_error() para comprobar los detalles si se ha producido un error. A continuación, llama al método pg_close() para cerrar la conexión.

Reemplace los parámetros $host, $database, $user y $password por sus propios valores.

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

Eliminación de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL DELETE.

El código llama al método pg_connect() para conectar con Azure Database for PostgreSQL. A continuación, llama al método pg_query() para ejecutar un comando, y a pg_last_error() para comprobar los detalles si se ha producido un error. A continuación, llama al método pg_close() para cerrar la conexión.

Reemplace los parámetros $host, $database, $user y $password por sus propios valores.

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

Limpieza de recursos

Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:

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

Pasos siguientes