PHP + PostgreSql – Conexão com banco de dados

Esse Post foi movido para :

http://clares.com.br/2008/07/09/php-postgresql-conexao-com-banco-de-dados/

Desculpe pelo transtorno, aproveite para assinar o novo blog.

Marcado:, , , ,

76 pensamentos sobre “PHP + PostgreSql – Conexão com banco de dados

  1. Gustavo stork setembro 24, 2008 às 3:29 pm

    bom obrigado o artigo me ajudou com algumas duvidas estagio como desenvolvedor de sistema do tribunal de justiça e estou começando desenvolvendo em php e ultilizando postgresql com banco dai algumas duvidas de conexão espero que você esteja sempre atualizando ok valeu…

  2. Cláudia Luísa W. E. Ribeiro novembro 4, 2008 às 3:25 pm

    Bom dia… Grata pela informação… Muito útil pra mim…
    Qualquer dúvida posso perguntar de você?

    Tenha um bom dia…

  3. Rafael Clares novembro 4, 2008 às 6:15 pm

    Cláudia fique à vontade para perguntar, no que for possível lhe ajudarei. Obrigado pelo comentário.
    até logo,

  4. salsotto novembro 25, 2008 às 2:47 pm

    Muito bom!

    Me clareou bem as coisas!

    ;D

    parabens!

  5. Alexandre dezembro 19, 2008 às 10:14 pm

    rafaael,
    Primeiramente muito bom seu artigo, parabens.
    Estive lendo seu artigo ref. ao postgree + PHP e no meio da informatica com tantos BD e tanas linguagens de programação, gostaria se possível, uma opinião sua referente ao uso do PHP com o banco Mysql no quesitos:
    – O banco suporta muitos registros? Quantos? Ou vc acha que existem bancos gratuitos que fazem melhor que o Mysql?
    – A integração de ECF’s, impressoras matriciais e termicas, é descomplicada ou tem alguma linguagem melhor?

    era somente isso…

    Obrigado desde já!

  6. Rafael Clares dezembro 22, 2008 às 10:13 am

    Olá Alexandre, obrigado pelo comentário. Cara o MySql eu acho muito bom sim usei por algum tempo até conhecer o PostgreSql, eu particularmente acho o Postgre melhor de trabalhar e o principal motivo por eu continuar utilizando-o é devido à proximidade do padrão SQL. Por exemplo a forma de trabalhar é mais parecida com o padrão e o mySql no meu ver tem bem mais particularidades e prefiro ficar mais proximo do padrão. Acredito que o MySql hoje esteja bem melhor do que quando eu utilizei e depois da Sun te-lo “comprado” … muito nome rola agora em torno do MySql. De toda forma essa é minha opnião de usuário, não tenho dados técnicos que possam dizer qual é melhor, eu simplesmente usei um e usei outro e tirei minhas conclusões… até

  7. Vinicius fevereiro 10, 2009 às 11:26 pm

    Olá Rafael, ótimo artigo, muito prático. Fiz exatamente o que você colocou neste artigo. Só que não está apresentando as mensagens, nem de êxito ou problema com a conexão. A página index.php fica em branco. Sabe o que pode ser?

    • Rafael Clares fevereiro 11, 2009 às 10:38 am

      Vinicius, verifique primeiramente as tags PHP perceba que no código está apenas <? e não <?php … para funcionar com a tag menor é preciso que esteja descomentada a linha short_open_tag no seu PHP.INI.
      O arquivo conexao.class.php nesse caso, está no mesmo diretório que o index.php.
      Verifique também se seu PHP.INI está habilitado para o PGSQL (Postgre), a linha extension=php_pgsql.dll deve estar descomentada.
      Bem, com isso você já tem algumas coisas para verificar…caso não consiga é só perguntar …
      abraços

  8. Axel Alexander abril 3, 2009 às 12:07 pm

    bom estou començando no php e gostaria de saber se para chamar a classe conexão e do mesmo jeito das includes

    • Rafael Clares abril 3, 2009 às 8:19 pm

      Axel, isso mesmo!
      de um include e instancie a classe.
      ate mais

  9. Alexandre abril 3, 2009 às 3:21 pm

    Primeriamente, parabéns pelo artigo… Mas comigo aconteceu um erro muito estranho:

    Instalei o postgre, crie o usuario, consegui conectar normalmente pelo pg_Admin III, então fui para o php.ini e as extensões do pg estão devidamente descomentadas, também rodei o php_info() e ele retornou: PGLOCALEDIR C:\Program Files\PostgreSQL\8.3\share\locale

    ou seja, devidamente instalado.

    Mas ao testar a sua classe e script, simplesmente não da erro algum, a página fica em branco… O que poderia ser?

    • Rafael Clares abril 3, 2009 às 8:11 pm

      Alexandre, retire o @ (arroba) da frente da chamada pg_connect(), o arroba inibe os erros. abraços

  10. Axel Alexander abril 4, 2009 às 12:14 pm

    Bom Primeiramente Rafael Parabens percebo que vc atende as todas as duvidas coisa que e meio complicado hoje en dia,,, mas vamos la a include eu sei mas instanciar a classe NÂO ainda
    não me leve a mal e que so Programava em Delphi
    e to apanhando do PHPOO ainda até mais

    • Rafael Clares abril 4, 2009 às 1:00 pm

      Axel,
      de uma lida no post, as 20 últimas linhas estão justamente mostrando como instanciar o objeto conexao.
      Abraços.

  11. Axel Alexander abril 6, 2009 às 1:00 pm

    bom obrigado Rafael, agora to com outro problema não consigo comfigurar o PHPPGADMIN no xammp e Wim xp eche so pra linux

    • Rafael Clares abril 6, 2009 às 1:12 pm

      Axel, infelizmente não uso o PhpPgAdmin localmente, logo, não tenho como ajuda-lo!
      Dê uma olhada no google. Abraços

  12. Axel Alexander abril 6, 2009 às 2:34 pm

    Mesmo Assim obrigado… ja consegui cara Veleu se alguem aew ta com Dificuldade posso postar a configuração Abraços ate outra divida

  13. Joelson junho 18, 2009 às 7:23 pm

    Olá Rafael… blz

    Cara quero te dar os parabéns, pelos artigos sobre o PHP OOP, tenho feito alguns projetos mas nenhum orientado a objetos, minha principal duvida era como criar uma conexão através de classes, graças ao seu artigo já posso iniciar os passos para desenvolver aplicações PHP OOP baseado em BD, me disseram que programar orientado a objetos é mais tranquilo, do que criar arquivos individuais por mais extruturados que estejam vc concorda?

    eu particularmente quero morrer quando tenho problemas com o header e looping infinitos do php, com PHP OOP este problema seria minimizado?

    bom por enquanto é isto, espero que me responda

    abs

    • Rafael Clares junho 19, 2009 às 11:23 am

      Joelson, obrigado pelo comentário, fico feliz que tenha lhe servido.
      Quanto à sua pergunta, com certeza OOP é mais tranquilo, na verdade é mais fácil em todos os sentidos, manutenção, reuso, etc…. Eu diria até que é “gostoso” de escrever ha-ha….
      Bem, nunca tive problemas com header e looping, eu comecei a utilizar o PHP ja na versão 5 à pouco tempo, talvez eu encontre essas dificuldades que você mencionou, mas até agora não hehe ainda bem!
      Comecei a escrever um artigo simples sobre OOP + BD com PHP5 e PostgreSQL mas como não houve nenhum interesse eu meio que dei uma brecada no artigo, também não sou doido né … hahaha
      Na próxima semana vou passar para uma segunda etada, dando continuidade no artigo, acho que será algo bem interessante para quem está querendo aprender.
      O primeiro é esse:
      https://clares.wordpress.com/2009/04/09/php-5-classes-banco-de-dados/

      abraços,

  14. alexandre julho 6, 2010 às 8:08 pm

    mt bom!!

  15. HSlife julho 29, 2010 às 9:17 am

    Oi amigo, tudo bem? Aqui comigo aconteceu uma coisa curiosa, a função pg_close() não encerra a conexão. Quando eu tiro o @ ele me mostra o seguinte erro: “Warning: pg_close() expects parameter 1 to be resource, null given in C:\xampp\htdocs\conexao.class.php on line 22”. Conferi com o manual do PHP e está tudo certo. Por acaso é alguma configuração no meu PHP? Estou usando o XAMPP 1.7.3 com Postgres 8.3

    • Rafael Clares agosto 4, 2010 às 11:29 pm

      o pg_close() recebe um parâmetro, tente pg_colse($con); Sendo $con a var da conexão.

  16. fogueth setembro 17, 2010 às 7:17 pm

    olha a sua dica foi muito util para concluir um trabalho. agradecia se me podece mandar o video….

  17. CARLOS outubro 5, 2010 às 1:43 pm

    SEU TUTORIAL NÃO DEU CERTO!
    QUANDO EU RODO O CODIGO NO APACHE
    NÃO APARECE NADA A TELA FICA TODA BRANCA!
    E NEM CONECTA COM BANCO POSTGRESQL!

    • Rafael Clares outubro 5, 2010 às 4:20 pm

      Rs rs , to achando que vc é que não deu certo amigão, deve ter escrito tudo em maiúsculas como fez no comentário, tente uma outra abordagem brother, por ex:
      Olá, não consegui fazer, o que pode estar errado?
      Sacou como é ? um pouco mais de humildade na hora de afirmar que uma coisa que você não sabe não funcionou!
      Se tiver alguma dúvida e puder não escreve-la “gritando” … é só me perguntar ok, se reparar aí, respondo a todas as perguntas possíveis.
      Boa sorte!

  18. carlos outubro 25, 2010 às 12:28 pm

    Olá, Rafael tudo bem com vc , poderia me ajudar? (tá bom assim pra vc brother!)

    eu fiz tudo que vc falou descomentei as linhas no php.in, verifiquei tudo que vc ja disse
    mais ainda não conecta no banco. ja criei o bancos e as tabelas mais quando fou conectar aparece em branco.
    queria saber se eu tenho que instalar o postgre dentro da pasta do apache pra funcionar pois quero acessar o banco de dados via codigo.

    outra coisa eu não fui rude com vc apenas falei que não deu certo?
    eu entendo sobre programação php, java, ajax, C#, C++, mysql, oracle e sql serve. só que me pedirão pra desenvolver um sistema em postgres, como nunca dinha configurado um resolvi pedir ajuda.
    porque eu instalo tudo certo crio o banco e as tabelas mais não consigo acessar, quando eu mudo pro sql server ele conecta no banco mais no postgres eu não consigo conectar.
    mais faleu ai Rafael e desculpa ai por qualquer coisa flws!!!!

    • Rafael Clares outubro 25, 2010 às 2:40 pm

      Carlos, o post é sobre conectar o PHP com PostgreSql, certamente eu cometi um erro ao não colocar no post que é requisito ter o postgre funcionando, digo isso porque a conexão feita pelo PHP é tão simples quanto a do MySql, uma única linha pg_connect(). Se o método não está funcionando é porque há algo de errado com PHP ou PostgreSQL.
      Já descomentou a linha php_pgsql.dll ?
      Se sim, verifique no diretório do postgre o arquivo data/pg_hba.conf , abra esse arquivo e verifique se essa linha está igual no seu arquivo:
      # IPv4 local connections:
      host all all 127.0.0.1/32 md5

      Flw

      • carlos outubro 29, 2010 às 10:46 am

        Rafael, eu dei uma olhada pg_hba.conf esta ok!
        ai eu prestei atenção na hora de estarta o postgres ele fala que não pode criar o doretorio .gnupg no “/opt/postgresql/9.0/.gnupg” o postgre tem acesso negado? o que eu faço pra resolver isso?
        eu estou achando que por causa disso pois o codigo de conexão esta tudo ok!
        Rafael outra coisa eu tenho que intalar o apache no mesmo diretorio ou não?
        desde já agradeço! flws.

      • Rafael Clares outubro 29, 2010 às 5:49 pm

        Carlos estou sem internet até segunda, só a partir desse dia poderia ajudar ok.

      • Rafael Clares outubro 31, 2010 às 1:31 am

        Então cara, sobre o problema do postgre não consigo te ajudar, talvez seja interessante você fazer uma busca no google, isso se acontece em qualquer base o problema.

  19. carlos novembro 3, 2010 às 1:48 pm

    oi, Rafael cara como tu conseguiu conectar com postgres
    ja fiz de tudo mais so aparece apagina em branco
    me uma luz ai cara!!

    • Rafael Clares novembro 4, 2010 às 4:56 am

      Verifique se a extensão php_pgsql está descomentada no php.ini

      • Carlos novembro 24, 2010 às 2:05 pm

        Ae, galera consegui conectar com postgres, esta ai o codigo:

        e só isso pode ter certeza !!!
        qualquer duvida posso ajudar!

        if(!@($conexao=pg_connect (“host=localhost dbname=controle_acesso port=8080 user=postgres password=postgres”))) {
        print “Não foi possível estabelecer uma conexão com o banco de dados.”;
        } else {
        //pg_close ($conexao);
        print “Conexao OK!”;
        }

  20. Ricardo dezembro 12, 2010 às 1:49 pm

    Olá Rafael, tenho lido alguns artigos do seu site e pego muitas dicas. Agradeço pelo trabalho de apoio aos iniciantes. Estou com um problema após ler e reler seu post sobre conexão do php com db postgres eu resolvi testar, porém mesmo os dados estando corretos o php nao conetca no db existe alguma configuração prévia em ambos os softwares para que se comuniquem. Utilizo ubuntu 10.10, rodando postgresql 8.4, apache2 e php5 todos funfando 100% mas mesmo com sua ajuda ainda não consegui conectar no banco só aparece a msg de que nao estou conectado e mesmo que eu retire o ‘@’ do pg_connect nao me eh retornado o erro, se for possível me ajudar te agradeço…

    • Rafael Clares dezembro 13, 2010 às 4:15 pm

      Ricardo, você precisa ver se o PHP foi compilado com o Postgre, se você instalou o apache2 e o PHP e só depois intalou o postgre então você precisa recompilar a instalação do apache2 e PHP. Dê uma olhada no phpinfo() para ver se está compilado o postgre.

      • Ricardo dezembro 14, 2010 às 1:39 am

        Rafael, observei novamente o phpinfo() e me parece que está ok, nele contém referências ao postgres sim e também ao pgsql, mas ainda assim eu nao consigo conectar ao banco nem pelo php tão pouco pelo pgadmin, o que eu devo setar nos arquivos de configuração do apache2, php5 e postgres8.4 para que ocorra essa interação?
        Desde já agradeço sua colaboração…

      • Rafael Clares dezembro 14, 2010 às 3:03 pm

        Então Ricardo, acredito que seja algo na instalação dê uma busca no google pelo termo: PHP + PostgreSQL no Ubuntu
        Dái irá encontrar os tutoriais de install, me recordo que no linux tem um lance de ter que alterar a senha mas não tenho certeza se na sua distro há essa necessidade!
        Boa sorte!

  21. Ricardo dezembro 15, 2010 às 8:10 pm

    Obrigado Rafael, refiz os passos de instalação do postgres, apache2 e php5 e descobri que não havia instalado o phppgadmin, após ter instalado o mesmo e modificado a senha do usuario postgres consegui conectar o php com postgres atráves do video que vc postou, agradeço mais uma vez pela sua ajuda. Não querendo ser muito chato, mas você tem algum material, tipo apostila ou manual de php? se tiver seria possivel me enviar por e-mail, como já disse estou começando a aprender a programar nessa linguagem e como estou nessa sozinho toda ajuda é bem vinda.
    Vlw, até a próxima…

    • Rafael Clares dezembro 16, 2010 às 3:21 pm

      Ricardo, fico feliz que tenha conseguido!
      Olha a melhor apostila de PHP que já vi é on-line, é na verdade a documentação do PHP, muito completa. http://www.php.net
      Se souber o que quer fazer, como fazer é muito mais fácil!
      abraços!

  22. Denner Luan janeiro 27, 2011 às 3:08 pm

    E ae Rafael,
    Fui fazer um teste com essa classe, mas ele sempre mostra q não está conectado. Não teria q colocar a porta ?

  23. fabio luis abril 26, 2011 às 1:57 pm

    fala rafael,

    tive um problema aqui …… a função pg_close($this->con) não fecha a conexão. o que pode ser ? já fiz algumas alterações e nada ..

    • Rafael Clares abril 27, 2011 às 8:14 pm

      Eae Fábio, poxa cara, estranho mesmo, será que seu pgsql não está configurado para uma conexão persistente?
      dá uma lida em:
      http://php.net/manual/en/function.pg-close.php

      De toda forma vou fazer um teste com esse exemplo que postei e ver se acontece aqui…
      abs

  24. Ubiraci Rafael Gomes maio 22, 2011 às 11:32 am

    Muito boa a explicação, muito didática.

  25. Will julho 17, 2011 às 11:17 pm

    Parabéns não somente pelo conteúdo apresentado mas também a forma como foi postado.
    Me ajudou muito.

  26. Lenadro agosto 8, 2011 às 3:24 pm

    Olha excelente video. Gostaria em saber onde posso ver todos os videos que vc ja criou sobre php e postgre.
    E se vc tem alguns videos ou tutoriais que explicam como trabalhar com html + php + postgre

    • Rafael Clares agosto 11, 2011 às 2:49 am

      Leandro, ainda não criei vídeos novos, infelizmente o tempo não está à nosso favor.
      Em breve teremos mais conteúdos para compartilhar.
      Fico lhe devendo essa.
      abraços

  27. Jonathan setembro 8, 2011 às 5:13 pm

    Rafael me ajuda ai, to tentando aqui mas dá esse erro:

    Fatal error: Call to undefined function pg_connect() in C:\Arquivos de programas\EasyPHP-5.3.8.0\www\pg\classes\conexao.class.php on line 16

    Pelo que parece ele não tá reconhecendo o pg_connect. Tem como me ajudar cara? Será que eu posso ter um contato melhor com você para resolver uns problemas por aqui? Caso tenha, entre em contato comigo: jonny.sanca@hotmail.com

    • Rafael Clares setembro 8, 2011 às 5:26 pm

      Verifique se está habilitado no PHP.ini o seu postgreSql.
      ;extension=php_pdo_pgsql.dll

      retire o ; da frente da linha no php.ini

      • Jonathan setembro 8, 2011 às 5:43 pm

        Já habilitei isso, mesmo assim continua o erro :/

      • Rafael Clares setembro 8, 2011 às 6:45 pm

        Nossa cara eu disse ;extension=php_pdo_pgsql.dll mas seria para descomentar a linha:
        extension=php_pgsql.dll

      • Jonny setembro 8, 2011 às 7:11 pm

        Sim foi exatamente o que eu fiz, mas não dava certo. Agora mudei para o Xampp, e usei os codigos aqui do tópico. (antes estavo usando o do video) e aconteceu o que acontecia com o Carlos lá em cima nos comentários. A tela fica inteira branca. Já li todos comentarios, nada daqui resolveu.

        É como se nada acontece-se mesmo. E está tudo giual ao tópico, ja habilitei lá pra usar só o <? e tudo mais como você já explicou, mas não dá em nada nada.

        Estou usando o código assim:

        con = @pg_connect(“host=$this->host user=$this->user password=$this->pswd dbname=$this->dbname”);
        return $this->con;
        }

        #método que encerra a conexao
        function close(){
        @pg_close($this->con);
        }

        #método verifica status da conexao
        function statusCon(){
        if(!$this->con){
        echo “O sistema não está conectado à [$this->dbname] em [$this->host].”;
        exit;
        }
        else{
        echo “O sistema está conectado à [$this->dbname] em [$this->host].”;
        }
        }
        }

        ?>

        No index está assim:

        open();

        #verificando o status da conexao
        $minhaConexao->statusCon();

        #encerrando a conexao
        $minhaConexao->close();

        #verificando a conexao apos close();
        $minhaConexao->statusCon();
        ?>

        E meu pgsql no php.ini ja esta sem o “;” e tudo mais. Não sei mesmo o que anda a acontecer.

      • Rafael Clares setembro 8, 2011 às 7:36 pm

        retire o @ da frente do pg_connect para ver a mensagem de erro e me informe a mensagem.

      • Jonny setembro 8, 2011 às 7:49 pm

        Continua na mesma, retirei o @ e a tela continua branca. :/

  28. Jonny setembro 8, 2011 às 7:53 pm

    Acho que vale lembrar que estou usando postegre 8.4 com pgadmin 1.10. Há alguma diferença??

    • Rafael Clares setembro 8, 2011 às 8:47 pm

      Acho que sua index tem algum problema ai, está assim ?

      $minhaConexao->open();
      $minhaConexao->statusCon();

      porque você disse que está assim:

      open();

      #verificando o status da conexao
      $minhaConexao->statusCon();

      #encerrando a conexao
      $minhaConexao->close();

      #verificando a conexao apos close();
      $minhaConexao->statusCon();

      O método open está perdido aí nesse exemplo que deu…

      Tente colocar dados incorretos do banco e retirar o @ porque assim deverá dar erro e exibir na tela, se continuar branco é algum problema no PHP/APache

      • Jonny setembro 9, 2011 às 2:14 pm

        Ae cara, consegui resolver o problemas qui ^^.
        Simplesmente era lá no PHP Extensions, só que no programa easyphp. Aonde clico lá, a caixinha da dll estava desmarcada, mesmo q no php.ini estava sem o “;” lá ela ficava desmarcada.
        Bom, tinha esquecido de avisar que esu estava a testar no Xampp, e logo depois mesmo erro no Wamp, mas vi que no video você usava EasyPHP e baixei, e com isso deu certo.

        Muito bom blog, e você é bem legal, resolve dúvidas, e olha que o post aqui é antigo. Recebi respostas no mesmo dia. Parabéns pelo trabalho.

        Agora uma coisa, vo ter de estudar como fazer agora para exibir informações do banco. Mas seria legal um tutorial novo ai sobre isso em. Ia ajudar bastante ^^

        Abrçs e boa sorte o/

  29. igor setembro 20, 2011 às 2:15 pm

    Oi Rafael,

    Estou usando o EasyPHP está dando erro de Parse Erro : syntax error, T_CLASS na linha 4 , na linha 4 está assim;

    include(‘conexao.class.php’);

    não estou conseguindo achar o erro poderia me dar uma força

    Valew

  30. igor setembro 20, 2011 às 2:24 pm

    Rafael,

    Funcionou era um erro no parametros ” .

    Mto Bom cara o post, poderia depois fazer de cadastros e formularios.

    Abraço

  31. RICARDO FERNANDES DA SILVA outubro 9, 2011 às 5:09 pm

    Rafael, estou com o mesmo problema de tela em branco no momento da conexão, já vasculhei a net e nada de solução, configurei o phd.ini, o http.conf e nada.
    Uso os seguintes programas:
    PostgreSQL 8.4.9 instalado em c:\postgresql\8.4
    PHP 5.2.17 instalado em c:\PHP
    Apache HTTP Server 2.2 instalado em c:\Apache
    PHP Editor em c:\PHP Editor

    O apache esta integrado com o PHP e com o PHP Editor, pelo menos o comando phpinfo() exibiu as configuração do PHP.

    Porém quando tento a conexão abaixo não aparece nada, nem mesmo erro, tentei colocar senha errada e nada.
    banco = $banco;
    $this->strCon = “host=$this->host user=$this->user password=$this->pswd dbname=$this->banco”;
    }

    function Open() {
    $this-> = pg_connect($this->strCon);
    }

    function Close(){
    pg_close($this->con);
    }

    function StatusCon() {
    if($this->con){
    echo ‘conectado’;
    }
    else{
    echo ‘desconectado’;
    exit;
    }
    }
    }
    ?>

    O index.php ficou assim:
    Open();
    $conexao->StatusCon();
    ?>

    Por favor veja se consegue encontrar algum erro acima. Desde já obrigado!

    Para contato via hotmail: “ric_fernandes@pop.com.br” se puder me adicionar vou estar precisando muito de seu axilio.

    • Rafael Clares outubro 17, 2011 às 1:46 am

      Ricardo, e quanto as short tags?
      Já tentou mudar de <? para <?php

  32. RICARDO FERNANDES DA SILVA outubro 9, 2011 às 6:49 pm

    tentei ainda …
    <?php
    // conexao.inc.php
    $str_conexao="host=127.0.0.1 dbname=postgres port=5432 user=postgres password=postgres";
    $conexaophp=pg_connect($str_conexao);
    if (!$conexaophp){
    echo "Houve erro ao conectar ao banco" . pg_last_error();
    echo "Informe a mensagem acima ao suporte pelo fone 9999 ou pelo e-mail
    suporte@suporte.com.br “;
    exit;
    }
    ?>

    também retornou tela em branco

    • Rafael Clares outubro 17, 2011 às 1:49 am

      Já descomentou a linha:
      extension=php_pgsql.dll
      no PHP.ini , você tem que descomentar, retirando o ; da frente da linha
      outra coisa, coloque em todos os arquivos, na primeira linha a linha que segue abaixo:
      error_reporting( E_ALL );

      Assim todos os erros serão reportados!

  33. LG fevereiro 5, 2012 às 10:19 pm

    Boa tarde. Vi alguns comentários de pessoas que estão visualizando apenas uma tela em branco. Estava com esse problema e acabei de descobrir que não havia instalado o php5_pgsql, o módulo do Postgres para PHP. Recomendo que tentem isso.
    Outro detalhe é sobre a função close. Também não está encerrando a minha conexão. Mas, sobre isso, estamos conectando com o pg_connect e não com o persistente pg_pconnect. Sendo assim, a conexão é encerrada automaticamente após o encerramento do script, tornando a função desnecessária.
    Parabéns pelo post, me ajudou muito.
    Abraço!

  34. fernablues abril 3, 2012 às 7:46 pm

    Parabens ! pelo tutorial muito bom ! Tive alguns problemas para configurar o PHP + Postgre mas foi só ativar algumas Dll no PHP.ini copiar 2 para o diretorio de extensões e consegui fazer a conexão com o BD Postgre.
    Mas quero pedir uma ajuda.
    Tentei fazer um select no index.php e parece que ele não reconhece a instaciação da classe e da um erro. pode dar uma ajuda ?

    mandando o script que criei e o erro que recebi :

    index.php

    <?php
    /*
    * Created on 02/04/2012
    *
    * To change the template for this generated file go to
    * Window – Preferences – PHPeclipse – PHP – Code Templates
    */
    #incluindo a classe conexao (supondo estar no mesmo diretorio)
    echo'include da classe.’;
    include(‘conexao.class.php’);

    echo ‘Instanciar o objeto conexao.’;
    #Instanciar o objeto conexao
    $minhaConexao = new conexao();

    echo ‘Chamada ao metodo open que abra a conexao.’;
    #chamada ao metodo open que abra a conexao
    $minhaConexao->open();

    echo ‘Verificando o status da conexao.’;
    #verificando o status da conexao
    $minhaConexao->statusCon();

    print “Executar consulta a base Postgre –>> SAFWEB”;
    $result = pg_query($con, “SELECT situacao, titulo_situacao FROM situacao_condutor”);
    if (!$result) {
    echo “>> Erro na consulta !”;
    exit;
    }

    while ($row = pg_fetch_row($result)) {
    echo “Situação: $row[0] Descrição Situação: $row[1]”;
    echo “\n”;
    }

    echo ‘encerrando a conexao.’;
    #encerrando a conexao
    $minhaConexao->close();

    echo ‘verificando a conexao apos close.’;
    #verificando a conexao apos close();
    $minhaConexao->statusCon();

    ?>

    erro recebido:

    include da classe.
    Instanciar o objeto conexao.
    Chamada ao metodo open que abra a conexao.
    Verificando o status da conexao.
    O sistema está conectado ao Banco: db_combustivel no Host: 10.72.31.114
    Executar consulta a base Postgre –>> SAFWEB

    Warning: pg_query() expects parameter 1 to be resource, null given in C:\xampp\htdocs\LearningPHP\index.php on line 25

    >> Erro na consulta !

    acho que ele não reconheceu a conexão. Como fazer ?

    abraço ! aguardo uma dica se possivel.

    • Rafael Clares abril 3, 2012 às 7:57 pm

      Basta alterar a linha:
      $result = pg_query($con, “SELECT situacao, titulo_situacao FROM situacao_condutor”);

      Por:
      $result = pg_query(“SELECT situacao, titulo_situacao FROM situacao_condutor”);

      • fernablues abril 3, 2012 às 8:00 pm

        Putz! Valeu ! rs To começando agora com o PHP + postgre, estas dicas são fundamentais para agilizar e multiplicar o aprendizado…

        Mais uma vez parabens! e continue postando tutoriais e dicas vou estar antenado aqui …

        Abraço !

      • Rafael Clares abril 3, 2012 às 8:02 pm

        Flw valeu irmão!
        obs: procure ler (traduzir) as mensagens de erro, o erro dizia que “pg_query só espera um único parâmetro” e você estava passando 2.
        Abs,

  35. fernablues abril 3, 2012 às 8:06 pm

    kkkkk tens razão e olha que domino bem o ingles.
    As vezes o erro ta na cara da gente e na pressa, não enxergamos nada rs

  36. Lucas abril 7, 2012 às 7:46 pm

    Pior que tava escrito assim, errado tbm no php.net
    http://php.net/manual/en/function.pg-query.php

    exemplo 1…

    deixaram errado lá mesmo?

    • Rafael Clares abril 7, 2012 às 8:39 pm

      Lucas, não tem nada errado, acontece que não existe no caso do Fernando, a var $con.
      $result = pg_query($con, “SELECT situacao, titulo_situacao FROM situacao_condutor”);

      $con não existe no código dele o que existe é

      $minhaConexao então seria

      $result = pg_query($minhaConexao->con, “SELECT situacao, titulo_situacao FROM situacao_condutor”);

  37. Ricardo maio 8, 2012 às 2:17 pm

    Olá, estou usando o ubuntu 11 e veja se estou certo:

    #/etc/php5/apache2$ ls

    conf.d php.ini

    Tenho de editar o php.ini, porém não acho em qual linha está:

    ;extension=php_pdo_pgsql.dll

    • Rafael Clares maio 8, 2012 às 3:15 pm

      Ricardo, nesse caso seria:
      ;extension=php_pgsql.dll

      Veja também se o postgresql está instalado;

  38. Aliana maio 15, 2012 às 1:18 pm

    Rafael,
    Não sei se pode me ajudar, mas preciso de ajuda de como conectar o banco post gres no sistema zend framework.
    Atenciosamente
    Aliana

    • Rafael Clares maio 15, 2012 às 11:27 pm

      Aliana, creio ser mais fácil você procurar em algum forum Zend, aliás, na documentação Zend.

  39. carasco maio 23, 2012 às 7:57 pm

    Mo paia.

Os comentários estão desativados.

%d blogueiros gostam disto: