21 de maio de 2012

PostgreSQL: Guia rápido com PHP

Neste post irei mostrar um guia rápido de como conectar e realizar queries simples utilizando o PostgreSQL e o PHP.
O primeiro passo é definir os dados da conexão, que são o endereço da conexão (que neste caso, é o localhost), o banco de dados que iremos nos conectar, usuário e senha:
$host = "localhost";//host
$db = "Pgtest";  //nome do banco de dados
$user = "postgres"; //usuario do banco de dados
$passwd = "pass"; //senha do banco de dados
Para conectarmos ao PostgreSQL, utilizamos a função pgconnect, utilizando as variáveis que colocamos os dados da conexão:
//Conectando ao banco de dados utilizando a funcao pg_connect
$conn = pg_connect("host=$host dbname=$db user=$user password=$passwd");
Agora com a conexão estabelecida, vamos rodar algumas queries! Primeiro criaremos uma tabela simples contendo id e nome de um usuário, depois vamos inserir 1 registro, e por fim, iremos listar os dados da tabela. Vamos guardar as queries nas seguintes variáveis:
//Query para criar uma tabela no banco de dados
$table_query = "CREATE TABLE usuarios(id serial NOT NULL,nome VARCHAR(64), PRIMARY KEY(id));";
//Query para inserir 1 registro na tabela
$reg_query = "INSERT INTO usuarios (nome) VALUES ('Vinicius');";
//Query para listar registros da tabela
$show_query = "SELECT * FROM usuarios";
Para a execução das queries é utilizada a função pg_query, como mostrada a seguir:
//Executando query para criar a tabela no banco de dados
$res = pg_query($conn, $table_query) or die("Nao foi possivel executar a query: $table_query\n");
//Executando query para inserir o registro na tabela
$res = pg_query($conn, $reg_query) or die("Nao foi possivel executar a query: $reg_query\n");
//Executando query para listar os registros da tabela
$res = pg_query($conn, $show_query) or die("Nao foi possivel executar a query: $reg_query\n");
Para terminar, vamos listar os dados:
//Exibindo dados
while ($linha = pg_fetch_row($res)) {
 foreach($linha as $dado)
   echo $dado . "\n";
}
Abaixo segue o código por completo:
<?php
 $host = "localhost";//host
 $db = "Pgtest";  //nome do banco de dados
 $user = "postgres"; //usuario do banco de dados
 $passwd = "pass"; //senha do banco de dados

 //Conectando ao banco de dados utilizando a funcao pg_connect
 $conn = pg_connect("host=$host dbname=$db user=$user password=$passwd");
 //Query para criar uma tabela no banco de dados
 $table_query = "CREATE TABLE usuarios(id serial NOT NULL,nome VARCHAR(64), PRIMARY KEY(id));";
 //Query para inserir 1 registro na tabela
 $reg_query = "INSERT INTO usuarios (nome) VALUES ('Vinicius');";
 //Query para listar registros da tabela
 $show_query = "SELECT * FROM usuarios";

 //Executando query para criar a tabela no banco de dados
 $res = pg_query($conn, $table_query) or die("Nao foi possivel executar a query: $table_query\n");
 //Executando query para inserir o registro na tabela
 $res = pg_query($conn, $reg_query) or die("Nao foi possivel executar a query: $reg_query\n");
 //Executando query para listar os registros da tabela
 $res = pg_query($conn, $show_query) or die("Nao foi possivel executar a query: $reg_query\n");

 //Exibindo dados
 while ($linha = pg_fetch_row($res)) {
  foreach($linha as $dado)
     echo $dado . "\n";
 }
?>

Um comentário: