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:
O ponto e vírgula significa que essa linha está comentada. Apague o ponto e virgula e salve o arquivo. A linha ficará assim:
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/