Pular para o conteúdo

PHP com PostgreSQL - Estruturando a conexão

Neste artigo será mostrada uma maneira de organizar e estruturar melhor o código fonte de um sistema desenvolvido em PHP utilizando conexão com banco de dados PostgreSQL.
Célio de Jesus Santos celiojs
Hits: 97.482 Categoria: PHP Subcategoria: Banco de Dados
  • Indicar
  • Impressora
  • Denunciar

Introdução

Uma dificuldade existente na organização do código fonte de um sistema desenvolvido utilizando a linguagem PHP com banco de dados é o fato de se abrir conexão com o BD simultaneamente, que ao longo do desenvolvimento do sistema gera um número muito grande de linhas de código e dificulta o entendimento do mesmo.

Entende-se que uma vez estabelecida a conexão entre uma estação cliente e o servidor de Banco de Dados, a mesma pode ser aberta e fechada simultaneamente assim que for executada a ação requerida, devido ao fato desta ficar armazenada em memória Cache, o que facilita a próxima conexão e também deixa o servidor livre para outras conexões.

Outra dificuldade que pode ser encontrada em algumas formas de programar é a declaração das variáveis que recebe parâmetros da conexão em várias partes do código fonte do sistema, o que pode causar transtornos, caso venha a ser alterado algum parâmetro da conexão e aumentando assim a quantidade de linhas de código. Para resolver este problema o programador teria que editar todo o código fonte do sistema fazendo as alterações necessárias para se adequar ao novo ambiente.

Para amenizar esses problemas deve-se criar um arquivo separado com os parâmetros de conexão com o SGBD, assim toda e qualquer alteração que for feita para que o sistema se adapte ao ambiente alterado deve ser feita exclusivamente neste arquivo, reduzindo assim o trabalho do programador e diminuindo a quantidade de linhas de código, o que facilitaria o entendimento do mesmo.

Outra maneira de se empregar a reutilização do código e assim reduzir em um grande número as linhas do código fonte e também garantir que toda conexão que for estabelecida com o servidor de BD seja encerrada, ou seja, fechada, é criar uma função separada em um único arquivo que faça a conexão com o Banco, executa a ação requerida, retorne o resultado da execução e encerra a conexão.

   1. Introdução
   2. Criando um simples formulário de cadastro
   3. Criando o script de conexão com o banco de dados
   4. Criando a função que executa as operações no BD
   5. Gravando no banco de dados
Nenhum artigo encontrado.

Sistema PDV com PHP-GTK2 e ACBrMonitor (parte 1)

Paginando resultados com a classe Generic Easy Pagination

Executando comandos DML em base de dados MySQL através do Eclipse PHP (Bônus: Temas e Fontes no Eclipse)

Sistema PDV com PHP-GTK2 e ACBrMonitor (parte 2)

Configurando Apache + MySQL + Manipulação de dados com PHP

#1 Comentário enviado por cvs em 14/06/2006 - 11:24h
Olha só quem eu encontro por aqui... E ae rapaz, bom? Hehehe... Estudo com você, pego SAD na mesma sala, sou o Thiago... interessante o artigo, vai ajudar num serviço aqui no trampo... mas eu preferiria mysql... hehehe


valeu.
#2 Comentário enviado por amauripump em 14/06/2006 - 11:32h
muito bem célio... vai me ser muito útil no projeto da agenda!
rs
valeu celio... falou
Amauri...
#3 Comentário enviado por celiojs em 14/06/2006 - 11:37h
Thyago,
O que vai alterar neste exemplo para o MySQL é apenas as funções específicas do mesmo. No mais vai funcionar perfeitamente.
Até mais,
#4 Comentário enviado por removido em 14/06/2006 - 14:38h
falaaaaaaaaaa sr: Celio, legal seu artigo, muito bom ter lembrado de sempra fechar a conexão com o banco de dados, assim evita PhP Injection , o que pode ocasionar façanhas com codigos arbitrarios.


abraços.
#5 Comentário enviado por sodeboa em 14/06/2006 - 20:25h
E ai meu brother só de boa ? legal seu artigo quando tiver mais um tempinho vou mexer nessa parada com mais detalhes qualquer duvida coloca aqui flw um abraço.
#6 Comentário enviado por dhoko em 15/06/2006 - 02:24h
Muito boa dica de organização!

fazer um arquivo/função para pegar as querys,, muito bom!
#7 Comentário enviado por wanderleihuttel em 16/06/2006 - 13:21h
Muito bom mesmo, simples e funcional.
Já dá para uma noção de como conectar com o BD.
Valeu
Abraço
#8 Comentário enviado por sergioramiro em 14/09/2006 - 18:09h
Sr. Célio:

Estou seguindo ao pé da letra suas instruções, mas por algum motivo estou recebendo apenas mensagem de erro do meu servidor. favor veja a mensagem a seguir:
Fatal error: Call to undefined function: pg_connect() in C:\Inetpub\wwwroot\Governo\secretarias\codin\teste\conecta.php on line 2

quando eu passo estes parametros:
$conectabd = pg_connect("dbname= DbTeste port=5432 host = 10.1.0.202 user = sa password = pataconcio");

Será que o sr. pode me ajudar??
#9 Comentário enviado por gzanatta00 em 03/05/2007 - 19:58h
amigo é o seguinte eu quero executar um php com parametros por exemplo
www.site.com.br/cadastro.php?codigo=1&nome=Gustavo
mas ele funciona a cadastro.php, mas dentro do registro ele nao esta conseguindo pegar as variaveis $codigo e $nome

me da uma luz ai companheiro
#10 Comentário enviado por celiojs em 03/05/2007 - 21:58h
É o seguinte:

pra você obter esses valores passados por URL você usará o método
$codigo = $_GET["codigo"];
$nome = $_GET["nome"];

ou Assim:

$codigo = $_REQUEST["codigo"];
$nome = $_REQUEST["nome"];

Fazendo isso creio que funcionará.

Espero ter ajudado.

Célio
#11 Comentário enviado por gzanatta00 em 24/05/2007 - 21:37h
esse paramentro é assim, eu tinha ele em outro servidor, e agora estou tentando trazer para este novo, e na proxima pagina ele iria pegar com o comando $codigo = ${"codigo"}
so que nao ta recebendo, ,eu acho q ta faltando algum componente para isso....vc saberia?
é a mesma coisa q acontece no http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4525, eu precisaria pegar o valor ex: 4525
#12 Comentário enviado por virlei em 13/08/2007 - 14:11h
Prezado Célio,

Parabéns pelo excelente artigo. Serviu-me de guia para projetar uma solução PHP+Postgresql.

Apenas um detalhe: no arquivo cadastrar.php, a instrução SQL está com os campos e valores associados invertidos. Assim, a linha
$Sql = "Insert into tabela(nome, cpf) values('$cpf', '$nome')"
deve ser trocada para
$Sql = "Insert into tabela(nome, cpf) values('$nome', '$cpf')"

Saudações
#13 Comentário enviado por celiojs em 14/08/2007 - 00:06h
Olá Virlei,
Saber que serviu de base para alguém é o que nos motiva a construir trabalhos assim.
Agradeço pela observação feita nesta parte do artigo.
Em breve estarei publicando um artigo mais avançado.
Desde já agradeço.
Célio
#14 Comentário enviado por brunoestevao em 12/03/2008 - 14:55h
Olá a todos.

Serviu bastante. Adorei seu script.

Abraços

Bruno Estêvão
www.sempihost.com.br
Hospedagem de sites com 30 dias grátis

Contribuir com comentário

Entre na sua conta para comentar.