Categorias

Trabalhando com classes em PHP

Neste artigo mostro como criar uma classe para se conectar e executar consultas a um banco de dados utilizando PHP.

Desta forma podemos programar de forma fácil e organizando nosso código em funções e classes.

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? 

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";
   }
} 
?>