segunda-feira, 14 de abril de 2014

PostgreSQL: Fatal error: Call to undefined function pg_connect()

Eis um problema que me tirou o sono por vários dias, tentando fazer funcionar Apache + PHP + PostgreSQL instalados de forma independente.

Primeiro deixe eu colocar que não sou a favor de usar WAMP / EasyPHP e outros pacotes similares, porque na hora de configurar um servidor de produção é necessário conhecer cada opção de configuração e nada melhor do que fazer isso instalando os softwares de forma independente.

Voltando ao problema inicial, estava tudo funcionando direito em meu notebook, até que precisei reinstalar os três pacotes (Apache + PHP + PostgreSQL) (não lembro porquê...).

Baixei e instalei as versões mais recentes do Apache, PHP e PostgreSQL.
Configurei corretamente os arquivos httpd.conf e php.ini e em um momento era o PHP que não queria conversar, na outra era o PostgreSQL que não funcionava com o PHP.

"Fatal error: Call to undefined function pg_connect() in ....\conection.php on line 26 "

Pesquisando um monte, a solução dos problemas foi aparecendo aos poucos.

Antes de mais nada, estou rodando no notebook:
- Windows 7 Professional (64 bits)
- Apache 2.2.22 (32 bits)
- PHP 5.3.5 (**VC6**-x86)(32 bits)
- PostgreSQL 9.1 (64 bits)
- PostgreSQL 9.3 (32 bits)

A primeira descoberta que fiz foi saber qual versão do PHP deve ser instalada em função do tipo de servidor web usado (IIS ou Apache). Aqui você já encontra uma dica.
Lendo mais um pouco, descobri que o local em que foi feito o download do Apache também influencia na escolha da versão do PHP que deve ser usada.
Agora você entende porque tem um **VC6** destacado aí em cima...
Com isso, coloquei o PHP e o Apache para rodar..... fim do primeiro round.

Depois de configurar corretamente o php.ini para carregar as extensões do PostgreSQL e reiniciar o Apache, parecia que tudo iria funcionar perfeitamente (pois não apareceu nenhuma mensagem de erro).

Foi quando rodei meu programa para testar a conexão e recebi a mensagem:
"Fatal error: Call to undefined function pg_connect() in ....\conection.php on line 26 "

Passei por vários fóruns tentando descobrir (sem sucesso) uma solução para o problema.
Já estava desanimado quando comecei a ler os comentários em um fórum e, então, vi uma sugestão que não custava tentar: copiar o arquivo libpq.dll (que está na pasta do PHP) para a pasta bin do Apache.

Assim feito, reiniciei o Apache e rodei novamente meu programa PHP para teste de conexão com o banco e.... PRONTO!!!!  Funcionou.

E agora estou aqui postando a solução que funcionou para mim, para que possa ajudar outros com o mesmo problema.

quarta-feira, 2 de abril de 2014

SQL Art - Mandelbrot set

Seguindo a linha do SQL Art iniciada no post anterior, aqui você encontra um script SQL que irá desenhar uma imagem representando o Conjunto de Mandelbrot.

Esta foi mais uma contribuição que apareceu na lista [pgbr=geral].

SQL Art

Recebi hoje na lista [pgbr-geral] e achei muito  legal....

Experimente copiar e rodar o código abaixo em um terminal do PostgreSQL (não pode ser via pgAdmin):

select * from

   (select array_to_string(array_agg(CASE WHEN (power((xx.x-25),2)/130+power((yy.y-25),2)/130)=1 THEN '$' WHEN (sqrt(power(xx.x-20,2)+power(yy.y-20,2)))<2 THEN '#' WHEN (sqrt(power(xx.x-20,2)+power(yy.y-30,2)))<2 THEN '#' WHEN (sqrt(power(xx.x-29,2)+power(yy.y-25,2)))<4 THEN '#' WHEN (power((xx.x-10),2)/40+power((yy.y-10),2)/40)=1 THEN '$' WHEN (power((xx.x-10),2)/40+power((yy.y-40),2)/40=1) THEN '$' ELSE ' ' END),' ') as cartoon from

      (select generate_series(1,40) as x) as xx,(select generate_series(1,50) as y) as yy group by xx.x order by xx.x) as co_ord;

http://feedproxy.google.com/~r/blogspot/rFRqt/~3/oTGb8aK0Qt4/cartoon-in-pg.html

Conhece outros exemplos? posta nos comentários...

terça-feira, 27 de novembro de 2012

Tempo para metamorfose

Eu estive um longo tempo na escuridão da Caverna do Mestre com meu Nokia E61i, passando por um período de encubação...

Um pouco de luz agora estou recebendo, com o novo Lumia 900...

Em breve espero levar para fora da Caverna um pouco mais sobre essa evolução.

sexta-feira, 2 de março de 2012

Você já ouviu falar sobre GeoCaching?

Estava acompanhando os twittes que recebo quando me deparei com um texto enviado por @NPossibilidades (veja aqui) falando sobre GeoCaching.

Já tinha lido sobre isso no passado e achei uma idéia muito legal... como diz esse outro texto, "... é a versão moderna da caça ao tesouro".

Mas o que isso tem a ver com mobilidade e dispositivos móveis?

Basicamente, GeoCaching é um jogo de aventura em que o jogador tem de procurar uma caixa que foi escondida em algum lugar (ao redor do mundo) por outra pessoa.
Para isso, o jogador conta apenas com as coordenadas geográficas (Latitude e Longitude) de onde está escondida essa caixa.

Qualquer pessoa pode esconder uma caixa e cadastrar-se gratuitamente no site http://www.geocaching.com para publicar as coordenadas da sua caixa.

Então, percebeu o que esse jogo tem a ver com mobilidade?
Já é comum os celulares mais modernos virem com receptores GPS. Basta informar as coordenadas e correr atrás do prêmio (que na maior parte das vezes é a simples emoção de encontrar os geocaches e deixar seu nome registrado).

Essa pode ser uma brincadeira individual, mas torna-se mais interessante quando realizada com um grupo de amigos e, porque não, como uma atividade de lazer da familia.

Mas há outro potencial aí que pode ser explorado. Empresas podem desenvolver promoções, escondendo geocaches com brindes pela cidade. Isso também ajudaria a promover essa brincadeira no país.

Quer conhecer mais sobre o assunto?
Acesse o portal GeoCaching Brasil, o portal oficial e mais esses links.

Gostou, vamos começar a brincadeira por aqui também?

quinta-feira, 23 de fevereiro de 2012

Criando apps para Android

Estamos preparando um tutorial sobre desenvolvimento de aplicativos para a plataforma Android.

Siga cada aula através da nossa MobiWiki (http://pt-br.mobi.wikia.com/wiki/Android)

terça-feira, 17 de janeiro de 2012

Caros leitores, a Caverna do Mestre esteve por um bom período sem novas postagens.

Um pouco foi por causa da falta de tempo de atualizar com novas informações.

Outro motivo é que comecei a fazer os testes com os aplicativos listados no post anterior, porém, com frustração, verifiquei que os aplicativos que tentei testar até o momento não tem versão para o E61i.

Vou continuar a fazer os testes, mas sem previsão de atualizar a Caverna, pois vai depender das horas vagas que terei para dedicar aos testes.

Por outro lado, vou abrir um novo tópico na Caverna, com um assunto que ultimamente tenho me dedicado um pouco mais: mobilidade e desenvolvimento para dispositivos móveis.

Assim, acompanhem os próximos posts.

abs,