11 fevereiro 2012

* »« † Mick D'arc ™† »« *

Como conectar a um banco PostgreSQL usando PHP

    Nenhum comentário:

O PostgreSQL é um dos melhores banco de dados abertos que existe. Além de ele oferecer uma ótima integração com o PHP (assim como o MySQL), ele oferece diversos recursos que são presentes na maioria dos bancos proprietários como:

  • Triggers;
  • Foreign keys;
  • Stored Procedures (inclusive em outras linguagens, como pgSQL, Python, Java e Perl);
  • Views;
  • Indexes;
Para fazermos esse artigo, você precisará instalar o PostgreSQL e um ambiente de desenvolvimento PHP na sua máquina. Fiz esse artigo no seguinte ambiente:
  • Windows XP com Service Pack 3;
  • PHP 5.3
  • PostgreSQL 8.X
Para instalar o PortgreSQL na sua máquina, basta ir ao site oficial deles em http://www.postgresql.org e baixar o instalador (Windows). Instale o banco e você verá que ele vem com um programa de administração de banco chamado pgAdmin. Use o pgAdmin para se conectar e se familiarizar com o banco. Você também consegue criar novos bancos e tabelas com essa ferramenta.

Para instalar o ambiente de desenvolvimento PHP (Apache e PHP), eu recomendo a instalação do XAMPP que é rápido e muito fácil. Eu já fiz um artigo mostrando como se faz a instalação desse pacote. Para ver o post clique aqui e para ir ao site oficial do XAMPP clique aqui.

Instalado o XAMPP e o PostgreSQL, precisamos habilitar a extensão do PostgreSQL no PHP. Para isso, precisaremos editar o arquivo php.ini. Abra o php.ini ele estará na pasta de instalação do seu PHP. Se você usou o XAMPP e instalou com as configurações padrão, esse arquivo estará em C:\xampp\php\php.ini.
Abrindo o arquivo, procure pela linha:

;extension=php_pgsql.dll

O ponto e vírgula significa que essa linha está comentada. Apague o ponto e virgula e salve o arquivo. A linha ficará assim:

extension=php_pgsql.dll

Salve o arquivo e reinicie o servidor Apache.

Agora, com seu banco e servidor rodando e com a extensão do PostgreSQL habilitada, vamos a codificação. Porém antes, você precisará criar uma tabela no banco para fazermos o teste de conexão e uma query de exemplo. Criada a tabela, aí sim podemos para a conexão com o PHP.

Para fazermos uma conexão PHP, precisaremos usar a função pg_connect(). Dê uma olhada no código abaixo:

$conexao = pg_connect("host=nome_computador port=porta dbname=nome_banco user=usuario password=senha");

Veja como parâmetro da função passamos uma string com todas as informações para se realizar a conexão. Se tudo estiver certo, o PHP realiza a conexão e retorna um recurso de conexão a variável $conexao.
Só fizemos a conexão até agora, vamos enviar uma query ao banco de dados agora! Veja o código abaixo como enviar a query:

$sql = "SELECT * FROM usuarios";
$query = pg_query($conexao, $sql);
pg_close($conexao);

Agora vamos entender o código acima. Primeiro estou atribuindo o comando SQL em si em uma variável que será usada depois. Em seguida, executamos a query no banco com a função pg_query() repare que como argumento dessa função, nós passamos o recurso da conexão feita no código acima (variável $conexao) e depois passamos o código SQL em si para ser executado.

Dessa forma podemos abrir conexão com vários bancos diferentes e executar consultas neles sem problemas.

E por fim, nós fechamos a conexão com a função pg_close(). Nós já podemos fechar a conexão porque já fizemos a query e atribuimos o resultado a varivável $query.
Agora, vamos exibir os resultados encontrados no banco. Veja o código abaixo:

while ($usuario = pg_fetch_array($query)) {
    echo($usuario["nome"])
}

Para percorrer o resultado da query, usamos um loop onde chamamos a função pg_fetch_array() atribuindo o resultado a uma variável. Essa variável é um array associativo onde o índice desse array é o nome da coluna do banco de dados. Por isso, para obter o nome do usuário, usamos $usuario[“nome”]. Esse nome é o nome da coluna.

Não há muito segredo em conectar o PHP ao PostgreSQL pois eles conversam muito bem. Para um aprofundamento no assunto, recomendo fortemente que você veja a lista de funções PHP disponíveis para uso com o PostgreSQL. Você pode ver essas funções aqui.

E chegamos ao fim de mais um artigo. Espero que tenha ajudado (pelo menos um pouco).

http://www.ricardogiaviti.com.br/2010/12/como-conectar-a-um-banco-postgresql-usando-php/

Próximo
« Anterior
Anterior
Próximo »