Bom, provavelmente você está reescrevendo o valor desse atributo em
outro momento. O código enviado tem 36 linhas mas os erros ocorrem nas
linhas 76 e 81...
Ou ainda, sua conexão falhou, mas como não está testando
($this->postgres != 0), aparece o erro.
Fiz testes aqui e funcionou. Postgresql 8.3 e PHP 5.2.5-3 servidor
Debian Linux.
2008/9/9 Marcos Fabrício Corso <[EMAIL PROTECTED]>
> cara, mudei, mas sem sucesso ...
>
>
>
> ----- Original Message -----
> *From:* William Leite Araújo <[EMAIL PROTECTED]>
> *To:* Marcos Fabrício Corso <[EMAIL PROTECTED]> ; Comunidade
> PostgreSQL Brasileira <[email protected]>
> *Sent:* Tuesday, September 09, 2008 1:54 PM
> *Subject:* Re: [pgbr-geral] Fw: Conexão PHP e Postgresql
>
>
>
> 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
>
> ------------------------------
> E-mail verificado pelo Terra Anti-Spam.
> Para classificar esta mensagem como spam ou não spam, clique
> aqui<http://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCYxMTgwMDA2NyNwZXJtIXRlcnJhJjEsMTIyMDk3OTMyMi4zMzgzOTUuMTQxMTAuY2FtZW5hbmEuaHN0LnRlcnJhLmNvbS5iciwxNzMxMw==>
> .
> Verifique periodicamente a pasta Spam para garantir que apenas mensagens
> indesejadas sejam classificadas como Spam.
>
> ------------------------------
> Esta mensagem foi verificada pelo E-mail Protegido
> Terra<http://mail.terra.com.br/>
> .
> Atualizado em 09/09/2008
>
>
--
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