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;
- Windows XP com Service Pack 3;
- PHP 5.3
- PostgreSQL 8.X
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/