Provendo dados em um servidor PostgreSQL através do Apache e PHP

Aprenda a configurar um serviço HTTP com suporte a PHP e acesso a bancos de dados no PostgreSQL.

[ Hits: 28.380 ]

Por: Stefano Fontes em 10/11/2010


Acessando o banco de dados



Vamos agora criar um script em PHP para acessar o banco de dados de teste.

Vá para o diretório /var/www/htdocs, apague o conteúdo do arquivo anteriormente criado "teste.php" e edite-o da seguinte forma:

# vi teste.php

<!--CÓDIGO HTML/PHP A SER INSERIDO NO ARQUIVO teste.php-->

<html>
<head>
<title>Teste de PHP</title>
</head>
<body>
<table border = "1">
<caption>TESTE DE PHP COM SQL</caption>
<tr>
<th>NOME</th>
<th>ENDEREÇO</th>
<th>TELEFONE</th>
</tr>
<?php
$conn = pg_connect("host=localhost dbname=teste user=postgres password=senha");
$result = pg_exec($conn, "select * from teste order by nome asc");
$linhas = pg_numrows($result);
$i = 0;
while($i < $linhas):
        $dados = pg_fetch_object($result, $i);
        echo "<tr>";
        echo "<td>" . $dados->nome . "</td>";
        echo "<td>" . $dados->endereco . "</td>";
        echo "<td>" . $dados->telefone . "</td>";
        echo "</tr>";
        $i++;
endwhile;
pg_freeresult($result);
pg_close($conn);
?>
</table>
</body>
</html>

Salve e saia do editor.

Observação importante: Como utilizei a versão 4.3.10-22 do PHP, as funções acima pg_exec, pg_numrows e pg_freeresult aqui possuem estes nomes; entretanto, os nomes atuais destas funções são respectivamente: pg_query, pg_num_rows e pg_free_result; portanto se você estiver utilizando uma versão mais recente do PHP faça estas substituições.

A seguir, abra um navegador "web" na máquina local ou em uma outra máquina da rede e digite o endereço do servidor onde estão "rodando" o Apache/PHP:

http://localhost/teste.php
ou
http://<ip-ou-nome-do-servidor>/teste.php

Caso tudo esteja correto você verá em seu browser a tabela criada no passo anterior no banco de dados de teste, algo como a figura abaixo:
Linux: Provendo dados em um servidor PostgreSQL através do Apache e PHP
Se as coisas não ocorrerem como esperado, consulte novamente a documentação de instalação/configuração do Apache, do PHP e também do PostgreSQL, além de revisar os passos aqui descritos, fazendo se necessário as devidas adaptações e correções.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Iniciando
   3. Testando
   4. Criando um banco de dados de teste
   5. Acessando o banco de dados
   6. Conclusão
Outros artigos deste autor

Criando um repositório criptografado de dados com Cryptsetup (dm-crypt) sem (re)particionamento do HD

Configurando disquete e pendrive para boot sem suporte na BIOS

Leitura recomendada

Criando backup do MySQL com o mysqldump

Armazenando datas de uma outra forma

Configurando Apache + MySQL + Manipulação de dados com PHP

Paginando resultados com a classe Generic Easy Pagination

Sistema PDV com PHP-GTK2 e ACBrMonitor (parte 2)

  
Comentários
[1] Comentário enviado por jcb em 19/11/2010 - 00:22h

schaf , show de bola seu artigo ...
porém, no arquivo teste.php na linha 16 ($linhas = pg_numrows($result);) só tem um erro ae, que o certo é pg_num_rows.
Abs

[2] Comentário enviado por schaf em 26/11/2010 - 12:40h

Prezado jcb:

Muito grato pelo seu comentário.
Entretanto, a correção, por você (muito bem) observada, foi mencionada por mim no artigo, logo abaixo do código do teste.php, e deve-se ao fato de diferença de versões do PHP utilizadas.
Para maior esclarecimento reproduzo abaixo o referido trecho do artigo:

"Observação importante: Como utilizei a versão 4.3.10-22 do PHP, as funções acima pg_exec, pg_numrows e pg_freeresult aqui possuem estes nomes; entretanto, os nomes atuais destas funções são respectivamente: pg_query, pg_num_rows e pg_free_result; portanto se você estiver utilizando uma versão mais recente do PHP faça estas substituições."

Muito grato pela contribuição!


Contribuir com comentário