Curso de Aplicaçoes WEB em PHP: 15. Acessando o PostgreSQL via PHP

Author: Ricardo Soares - Postado em: 07/09/2009
Relacionado as categorias: Guias e Tutoriais, Tecnologia, Diversos |  





Estabelecendo conexões

Para acessar bases de dados num servidor Postgres, é necessário antes estabelecer uma conexão. Para isso, deve ser utilizado o comando pg_connect, ou o pg_pconnect. A diferença entre os dois comandos é que o pg_pconnect estabelece uma conexão permanente, ou seja, que não é encerrada ao final da execução do script. As assinaturas dos dois comandos são semelhantes, como pode ser verificado a seguir:
int pg_connect(string host, string porta, string opcoes, string tty, string db)
int pg_pconnect(string host, string porta, string opcoes, string tty, string db)

O valor de retorno é um inteiro que identifica a conexão, ou falso se a conexão falhar. Uma conexão estabelecida com o comando pg_connect é encerrada ao final da execução do script. Para encerrá-la antes disso deve ser utilizado o comando pg_close, que tem a seguinte assinatura:
int pg_close(int identificador da conexão )

IMPORTANTE: o comando pg_close não encerra conexões estabelecidas com o comando pg_pconnect.

Os comandos pg_connect e pg_pconnect também podem ser utilizados da seguinte forma:
pg_connect("dbname=db port=n host=”localhost” tty=”tty” options=opcoes user=usuario password=senha")

Realizando consultas

Para executar consultas SQL no Postgres, utiliza-se o comando pg_exec, que tem a seguinte assinatura:
int pg_exec(int conexao, string query )

Onde query é a expressão SQL a ser executada, sem o ponto-e-vírgula no final, e conexao é o identificador da conexão a ser utilizada. A consulta será executada na base de dados selecionada quando for efetuada a conexão com o banco. Para
saber qual a base de dados selecionada, basta utilizar a função string pg_dbname, que tem a seguinte assinatura:
stringm pg_dbname(int conexão)

É bom lembrar que uma consulta não significa apenas um comando SELECT. A consulta pode conter qualquer comando SQL aceito pelo banco.

O valor de retorno é falso se a expressão SQL for incorreta, e diferente de zero se for correta. No caso de uma expressão SELECT, as linhas retornadas são armazenadas numa memória de resultados, e o valor de retorno é o identificador do resultado. Alguns comandos podem ser realizados com esse resultado:

Verificando o erro na execução de uma query

Para ter acesso à mensagem de erro no caso de falha na execução de uma query SQl, basta utilizar o comando pg_errormessage()
string pg_errormessage(int connection)

Apagando o resultado

int pg_freeresult(int result)
O comando pg_freeresult deve ser utilizado para apagar da memória o resultado indicado. No PHP 4, este comando tornou-se obsoleto, já que o interpretador trata de apagar o resultado automaticamente em caso de não ser mais utilizado.

Número de linhas

int pg_numrows(int result)

O comando pg_numrows retorna o número de linhas contidas num resultado.

Utilizando os resultados

Existem diversas maneiras de ler os resultados de uma query SELECT. As mais comuns serão vistas a seguir:
int pg_result(int result, int linha, mixed [campo] )

Retorna o conteúdo de uma célula da tabela de resultados.
result: é o identificador do resultado;
linha: é o número da linha, iniciado por 0;
campo: é uma string com o nome do campo, ou um número correspondente ao número da coluna. Se foi utilizado um alias na consulta, este deve ser utilizado no comando pg_result.

Este comando deve ser utilizado apenas para resultados pequenos. Quando o volume de dados for maior, é recomendado utilizar um dos métodos a seguir:
array pg_fetch_array(int result, int linha)
Lê uma linha do resultado e devolve um array, cujos índices são os nomes dos campos. O índice das linhas é iniciado por zero.

array pg_fetch_row(int result, int linha)
Semelhante ao comando anterior, com a diferença que os índices do array são numéricos, iniciando pelo 0 (zero).













Comments

Leave a Reply






Últimos posts