Início Rápido: Usar o PHP para se conectar e consultar dados no Banco de Dados do Azure para PostgreSQL – servidor único

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. Recomendamos vivamente que atualize para a Base de Dados Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para a Base de Dados Azure para PostgreSQL – Servidor Flexível, veja O que está a acontecer à Base de Dados Azure para PostgreSQL Single Server?.

Este guia de início rápido demonstra como se conectar a um banco de dados do Azure para PostgreSQL usando aplicativo PHP. Ele mostra como usar instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados. As etapas neste artigo pressupõem que você esteja familiarizado com o desenvolvimento usando PHP e que tenha começado a trabalhar recentemente com o Banco de Dados do Azure para PostgreSQL.

Pré-requisitos

Este guia de início rápido usa os recursos criados em um destes guias como ponto de partida:

Instalar o PHP

Instalar o PHP em seu próprio servidor ou crie um aplicativo Web do Azure que inclua o PHP.

Windows

  • Baixar o PHP 7.1.4 versão protegida não thread (x64)
  • Instalar o PHP e consultar o manual do PHP para outras configurações
  • O código usa a classe pgsql (ext/php_pgsql.dll) que está incluída na instalação do PHP.
  • Habilitou a extensão pgsql editando o arquivo de configuração php.ini, geralmente localizado em C:\Program Files\PHP\v7.1\php.ini. O arquivo de configuração deve conter uma linha com o texto extension=php_pgsql.so. Se não for exibido, adicione o texto e salve o arquivo. Se o texto estiver presente, mas comentado com um prefixo de ponto e vírgula, remova a marca de comentário do texto removendo o ponto e vírgula.

Linux (Ubuntu)

  • Baixar o PHP 7.1.4 versão protegida não thread (x64)
  • Instalar o PHP e consultar o manual do PHP para outras configurações
  • O código usa a classe pgsql (php_pgsql.so). Instale-a executando sudo apt-get install php-pgsql.
  • Habilitou a extensão pgsql editando o arquivo de configuração /etc/php/7.0/mods-available/pgsql.ini. O arquivo de configuração deve conter uma linha com o texto extension=php_pgsql.so. Se não for exibido, adicione o texto e salve o arquivo. Se o texto estiver presente, mas comentado com um prefixo de ponto e vírgula, remova a marca de comentário do texto removendo o ponto e vírgula.

MacOS

Obter informações de conexão

Obtenha as informações de conexão necessárias para se conectar ao Banco de Dados do Azure para PostgreSQL. Você precisa das credenciais de logon e do nome do servidor totalmente qualificado.

  1. Faça logon no Portal do Azure.
  2. No menu à esquerda no portal do Azure, selecione Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
  3. Selecione o nome do servidor.
  4. No painel Visão Geral do servidor, anote o Nome do servidor e Nome de logon do administrador do servidor. Se você esquecer sua senha, também poderá redefini-la nesse painel. Nome do servidor do Banco de Dados do Azure para PostgreSQL

Conectar-se e criar uma tabela

Use o código a seguir para se conectar e criar uma tabela usando a instrução SQL CREATE TABLE, seguida por instruções SQL INSERT INTO para adicionar linhas à tabela.

O método de chamada de código pg_connect() para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método pg_query() várias vezes para executar vários comandos e pg_last_error() para verificar os detalhes em caso de erro. Em seguida, ele chama o método pg_close() para fechar a conexão.

Substitua os parâmetros $host, $database, $user, e $password pelos seus próprios 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);
?>

Ler dados

Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL SELECT.

O método de chamada de código pg_connect() para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método pg_query() para executar o comando SELECT, mantendo os resultados em um conjunto de resultados, e pg_last_error() para verificar os detalhes em caso de erro. Para ler o resultado definido, o método pg_fetch_row() é chamado em um loop, uma vez por linha, e a linha de dados é recuperada de uma matriz $row, com um valor de dados por coluna em cada posição de matriz. Para liberar o resultado definido, o método pg_free_result() é chamado. Em seguida, ele chama o método pg_close() para fechar a conexão.

Substitua os parâmetros $host, $database, $user, e $password pelos seus próprios 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);
?>

Atualizar dados

Use o código a seguir para conectar-se e atualizar os dados usando uma instrução SQL UPDATE.

O método de chamada de código pg_connect() para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método pg_query() para executar um comando e pg_last_error() para verificar os detalhes em caso de erro. Em seguida, ele chama o método pg_close() para fechar a conexão.

Substitua os parâmetros $host, $database, $user, e $password pelos seus próprios 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);
?>

Excluir dados

Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL DELETE.

O método de chamada de código pg_connect() para se conectar ao Banco de Dados do Azure para PostgreSQL. Em seguida, ele chama o método pg_query() para executar um comando e pg_last_error() para verificar os detalhes em caso de erro. Em seguida, ele chama o método pg_close() para fechar a conexão.

Substitua os parâmetros $host, $database, $user, e $password pelos seus próprios 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);
?>

Limpar os recursos

Para limpar todos os recursos usados durante este guia de início rápido, exclua o grupo de recursos usando o seguinte comando:

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

Próximas etapas