Usando classes em conexão e consultas à banco de dados em PHP

Neste meu primeiro artigo mostro como criar uma classe para se conectar e executar consultas a um banco de dados. Este modo de programar facilita nossa vida organizando nosso código em funções e classes.

[ Hits: 20.909 ]

Por: Perfil removido em 16/10/2003


Introdução



Opa!

Primeiramente meus agradecimentos aos meus colegas de correria: Clodonil Honório Trigo, Gaby Lima Dias e ao grande amigo e irmão Rodrigo Rodrigues =).

Bom vamos lá.

Pessoal, esses exemplos que estarei postando aqui foram tempos de trabalho em cima de projetos e necessidades que no decorrer do tempo foram criadas para melhor aproveitamento do código e rapidez na finalização de um sistema.

1a etapa


Vamos montar uma classe chamada querys:

class querys {
    var $ip = "localhost";
    var $user = "root";
    var $pass = "";
    var $database = "projeto";
}

Nessa classe montamos ela com 4 variáveis: $ip, $user, $pass e $database. Nelas estão armazenadas as configurações necessárias para acesso ao banco, isso é legal quando acontece de alguém querer configurar seu sistema, aí fica tudo bem à vista do cara, que não precisa ter medo de mexer nos códigos =).

Agora vamos montar algumas funções chamadas:
  • Selects()
  • AbreConexao()
  • FechaConexao()


// arquivo querys.php

class  querys {
    var $ip = "localhost";
    var $user = "root";
    var $pass = "";
    var $database = "projeto";
  
   function AbreConexao() {
      $this->conn = mysql_connect ($this->ip,$this->user,$this->pass); // aqui declaramos a var conn como variável da classe
      mysql_select_db ( $this->database, $this->conn);
      // esse "$this->" ele e utilizado para referenciar uma variável da classe
   }

  function FechaConexao() {
      mysql_close ($this->conn); // aqui fecho a conexão se baseando na variável acima declarada
  }
      
  function Selects($config) {
      $this->AbreConexao(); // Abrimos a conexão
      $conf = explode(",",$config)   // Aqui explodimos e jogamos em array

      if ($conf[0] == "select_login") {
          $select = mysql_query("SELECT * FROM users WHERE login LIKE '".$conf[1]."' AND pass LIKE '".$_POST[pass]."' ");
     /*
         perceba que aqui estou pegando a variável $conf[1] que será
         passada para a função contendo o login e para o password estou
         pegando a variável direto do form. Esses dois exemplos são bem
         legais.. aí você escolhe qual seguir, eu prefiro o esquema utilizado
         no password.
     */

          $result = mysql_num_rows($select);
     }

     if ($conf[0]=="select_permissao") {
        // aqui verifico permissão do usuário "administrador, usuário e etc"
        $select = mysql_query("SELECT * FROM users WHERE login LIKE '".$_POST[login]."' ");
        $coluna = mysql_fetch_array($select);
        $result = $coluna[permissao];
     }

     $this->FechaConexao(); // Fechamos a conexão
     return $result; // aqui fica o retorno de todas as condicionais
  }
}

Perceba que ao declarar a função, declaro uma variável chamada $config e depois explodo a mesma, ao invés de fazer $var1, $var2, $var3. E adivinha porque? Simples, isso foi feito porque você não fica preso a uma limitada quantidade de variáveis, sendo assim poderá passar quantas variáveis quiser =), para ajustar a função ao seu gosto e adicionar quando quiser.

Isso é legal quando você está montando um projeto muito grande, pode até chamar a mesma condicional umas 3 vezes. Se você for adicionar uma variável terá que alterar em todas? hehehe

Pronto, para finalizarmos montamos o seguinte:

// arquivo index.php
<?
include("querys.php");
$querys = new querys;

if ($_POST[acao_form] == "verificar_usuario") {
   if ($querys->Selects("select_login,$_POST[login]")) {
       if ($querys->Selects("select_permissao")=="administrador") {
           header("Location:admin.php");
        } else {
           header("Location:usuario.php");
       }
   } else  {
           echo "Você não está no banco";
   }
}
?>

<form>
   <input type="hidden" name="acao_form" value="verificar_usuario">
   <input type="text" name="login">
   <input type="submit" value="OPa!">
</form>

Beleza pessoal, esse primeiro artigo de muitos é para mostrar como podemos simplificar ao máximo nosso trabalho árduo =), esse ainda está bem simples, no próximo vamos começar a montar um sistema de login com permissão de usuários, restrições e etc. Esse artigo foi só para nos familiarizarmos =)

Então mande perguntas e me mandem também o que gostariam de estar vendo no próximo artigo... inté =)

Guilherme L. Stolfo
Smart Solutions e Tecnologia
www.smart-tec.com.br

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Eu!noel é sinônimo do Arch Linux! Por quê?

GNU/Linux - Benefícios na Área Administrativa

Agora SIM, aMSN com suporte a anti-aliasing

Kshutdown e suas funções

A origem do Linux

Leitura recomendada

Debugando aplicações PHP com Xdebug e Eclipse PDT

Capturando conteúdo de sites em PHP

Guia completo do Ocomon módulo admin no Linux (exclusivo VOL)

Como programar com OOP em PHP, uma classe simples

Instalando Lamp Stack no Servidor Debian

  
Comentários
[1] Comentário enviado por Ragen em 17/10/2003 - 20:38h

Bem, se o objetivo é só ensinar como usar classes para usar banco de dados tudo bem...

Mas o BobFrank escreveu um artigo muito bom disponivel em:
http://www.conflito.com.br/artigo_bf/index.php

Sobre o uso do P.E.T. Template e do ADODB (Front-End SQL) de forma a usar códigos "re-utilizaveis"

[]`s

Ragen

[2] Comentário enviado por jitto em 06/10/2004 - 08:29h

Puxa vida, eu queria muito aprender trabalhar com classes em PHP. Por enquanto só sei trabalhar no modo procedural!!!
- Alguém pode me indicar um livro ou um curso on-line de PHP avançado?
Da forma que o Guilherme mostrou aqui, para mim ainda ficou meio abstrato, preciso de mais detalhes a respeito.

[3] Comentário enviado por messala em 19/05/2005 - 11:57h

ow... muito bom essa sua aula! Mexo com php tem pouco mais de 1 ano e nunca tinha usado classes... soh com isso ae eu aprendi bastante. Sem dúvida vai me ajudar muito!

[4] Comentário enviado por messala em 19/05/2005 - 12:08h

eu fiz um baseado nesse seu modelo, soh que mais manuseável... onde eu posso postá-lo?

[5] Comentário enviado por removido em 19/05/2005 - 12:14h

OPa, pode postar aqui mesmo. Lembrando que esse exemplo que contribui aqui, além de ser bastante antigo, demonstra conceitos básicos de se utilizar classes em um sistema.

--
Abs,
guinet gmail com

[6] Comentário enviado por henbran em 27/02/2006 - 12:58h

Pessoal PHP
testei esse recurso, claro que sou iniciante em php, ocorre que na linha a seguir apresentou erro

$conf = explode(",",$config) // Aqui explodimos e jogamos em array

erro:
Parse error: syntax error, unexpected T_IF in /var/www/queryes.php on line 25

uso kurumin + apache 2 + php5 + mysql5

Por favor, ajudem-me a definir que erro é esse.

Até + e um grande abraço

[7] Comentário enviado por fernandoamador em 18/04/2006 - 18:59h

Vlw...gostei do artigo...ate +

[8] Comentário enviado por claudiolima em 31/05/2006 - 11:36h

Um artigo Sinples, mas que mostra bem como usar Classes em PHP.
Muito bom.

[9] Comentário enviado por salvini em 02/03/2007 - 11:48h

$conf = explode(",",$config); // Aqui explodimos e jogamos em array

Faltou o ponto e virgula depois do $config)
Acho que é isso.

[10] Comentário enviado por denes em 24/05/2007 - 16:27h

Oi, Guilherme!
Parabéns pelo artigo. Sou iniciante em PHP, mas já fiz curso de programação Delphi, onde tive contado com POO e sou completamente pró-POO. E o uso de classes é extremamente importante nesse modelo de programação. Espero ver mais artigos assim!
Abçs.

[11] Comentário enviado por xploitx em 20/05/2009 - 10:19h

muito bom o artigo.
está começando a clarear minhas idéias relacionadas a PHP OOP


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts