2008/9/9 Marcos Fabrício Corso <[EMAIL PROTECTED]>
> ----- Original Message ----- *From:* Marcos Fabrício Corso<[EMAIL PROTECTED]>
> *To:* Lista PHP <[EMAIL PROTECTED]>
> *Cc:* Lista Postgres <[email protected]>
> *Sent:* Tuesday, September 09, 2008 10:57 AM
> *Subject:* Conexão PHP e Postgresql
>
> Olá pessoal
> Criei uma classe de conexão do PHP com o Postgresql
>
>
> *conexao.php*
> **
> Class Postgresql {
> public function conectar() {
> $this->postgres = pg_connect( "host=localhost port=5432
> dbname=teste user=teste password=teste" ) ;
>
Esqueceu de enviar o código que diz que "postgres" é um atributo da
classe ou é porque não colocou mesmo?
Algo do tipo:
private $postgres; (PHP 5)
var $postgres; (PHP4)
>
> $status2 = pg_connection_status($this->postgres);
> if ($status2 != 0) {
> echo 'Erro na conexão com o banco de daddos, por favor, aguarde
> uns instantes para acessar novamente';
> die();
> }
> return ;
> }
>
> public function desconectar() {
> $status = pg_connection_status($this->postgres);
> if ($status != 0) {
> echo 'Erro na conexão com o banco de daddos, por favor, aguarde
> uns instantes para acessar novamente';
> die();
> }
> $ocupa = pg_connection_busy($this->postgres);
> if ($ocupa) {
> echo 'Erro na conexão com o banco de daddos, por favor, aguarde
> uns instantes para acessar novamente';
> die();
> }
> pg_close( $this->postgres ) ;
> return ;
> }
>
> public function executar($sql1) {
> $status1 = pg_connection_status($this->postgres);
> if ($status1 != 0) {
> echo 'Erro na conexão com o banco de daddos, por favor, aguarde
> uns instantes para acessar novamente';
> die();
> }
> $resultado1 = pg_query($this->postgres, $sql1);
> return $resultado1 ;
> }
> }
>
> Nos meus arquivos eu chamo
>
> *cadastro.php*
> *...*
> * *require_once('conexao.php') ;
> $conecta = new Postgresql();
> $conecta->conectar();
> $resultado = $conecta->executar( " select uf, cidade, fantasia
> from cliente where codigo = $this->ued ; " );
> $total = pg_numrows ($resultado);
> for ($tupla = 0; $tupla < $total; $tupla ++) {
> $estado = pg_result ($resultado, $tupla, 0);
> $cidade = pg_result ($resultado, $tupla, 1);
> $fantas = pg_result ($resultado, $tupla, 2);
> }
> $conecta->desconectar();
> ....
>
>
> Mas durante a execução do código, aparece o seguinte erro, dizendo que a
> conexão está ocupada, acho que porque ele está execuntando ...
>
> *Warning*: pg_connection_status(): 16 is not a valid PostgreSQL link
> resource in */home/httpd/vhosts/httpdocs/matricula_novo/conexao.php* on
> line *76*
>
> *Warning*: pg_query(): 16 is not a valid PostgreSQL link resource in *
> /home/httpd/vhosts/httpdocs/matricula_novo/conexao.php* on line *81*
> Mas preciso as vezes fazer uns 2 ou 3 select juntos, como resolver isso
>
>
O erro não é porque o banco esteja "ocupado", mas sim porque o atributo
passado como "Postgresql Link Resource" não é desse tipo. Isso reforça minha
tese de que esqueceu de colocar o item "$postgres" como um atributo da
classe...
--
William Leite Araújo
Analista de Banco de Dados - QualiConsult
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral