Ir para conteúdo
Fórum Script Brasil
  • 0

Class Usuario - Usando PDO


david.lyonnais

Pergunta

Aproveitei esse dia de folga dos meus afazeres e sem nada pra fazer e aproveitando que estava estudando PDO criei a seguinte class se vai ser é inútil essa class eu não to muito ai pois so foi para aprendizado e diversão =)

Eu poderia ter dado uma arrumada deixando mais limpo mais tinha acabado o dia e eu queria termina-lo logo.

Segue o codigo:

<?php
    
    class davvUsuarios {
        var $dusuarios = array();
        var $tabela;
        var $pdo;
        var $stm;
        
        function davvUsuarios($dsn,$usuarios,$senha){
            $this->pdo = new PDO($dsn,$usuarios,$senha);
        }
        
        function addUsuario(){
            $sql = 'INSERT INTO '.$this->tabela.' VALUES (';
            foreach($this->dusuarios as $campo => $valor){    
                $sql .= ':'.$campo.',';
            }
            $sql = substr($sql,0,strlen($sql)-1).')';
            try{
            $this->stm = $this->pdo->prepare($sql);
            $this->stm->execute($this->dusuarios);
            } catch (PDOException $e){
                echo $e->getMessage();
            }
        }
        
        function upUsuario($where){
            $sql = 'UPDATE '.$this->tabela.' SET ';
            $idwhere = ' WHERE ';
            foreach($this->dusuarios as $campo => $valor){
                if($campo == $where){
                    $idwhere .= $campo.' = :'.$campo;
                }else{
                    $sql .= $campo.'= :'.$campo.', ';    
                }
            }
            $sql = substr($sql,0,strlen($sql)-2).$idwhere;
            try{
            $this->stm = $this->pdo->prepare($sql);
            $this->stm->execute($this->dusuarios);
            } catch (PDOException $e){
                echo $e->getMessage();
            }
            return $res;
        }
        
        function delUsuario($idcampo,$id){
            $sql = 'DELETE FROM '.$this->tabela.' WHERE '.$idcampo.' = '.$id;
            try{
            $this->stm = $this->pdo->prepare($sql);
            $this->stm->execute();
            } catch (PDOException $e){
                echo $e->getMessage();
            }
            return $res;
        }
        
        function setUsuario($prop,$valor){
            $this->dusuarios[$prop] = $valor;
        }
        
        function setTabela($tabela){
            $this->tabela = $tabela;
        }
        
        function viewUsuario($view = 0,$sql2 = 0){
            $sql = "SELECT * FROM ".$this->tabela;
            if($view == 0){
                $sql .= " WHERE ";
            if(sizeof($this->dusuarios) > 0){ 
            foreach($this->dusuarios as $campo => $valor){
                    $sql .= " ".$campo." = :".$campo." AND";
            }
            $sql = substr($sql,0,strlen($sql)-4);
            }
            }
            elseif($sql2 != 0 and $view == 1 or $view == 2){
            $sql = $sql2;
            $verif = $view;
            }
            try{
            $this->stm = $this->pdo->prepare($sql);
            if($view == 0 or $verif == 1){
            $this->stm->execute($this->dusuarios);
            }elseif($view == 1 or $verif == 2){
            $this->stm->execute();
            }
            } catch (PDOException $e){
                echo 'Erro:'.$e->getMessage();
            }
        }
    }

?>
Tutorial de uso: Conectando: É da mesma forma que você se conecta no pdo passa as informações do mesmo modo.
<?php
    include ("davvusuarios.class.php");
    $dav = new davvUsuarios('mysql:host=localhost;dbname=usuarios','usuario','senha');
?>
Para incluir dados você precisa setar os campo com seu valores e a tabela para depois chamar a função que adicionara OBS.:So setar o valor do id se for pra da um id especifico se tiver no auto_increment não setar id. Sintaxe: setUsuario(string Campo_tabela, string Valor_do_campo); addUsuario(); Não recebe parametro. Inserindo:
<?php
        $dav->setTabela('usuarios');
    $dav->setUsuario('login','David');
    $dav->setUsuario('senha','flamengo');
    $dav->addUsuario();
?>
Para modificar so precisa setar os valores que serão modificados e coloca o campo da clasula where no parametro(mais antes tem que setar o campo); Modificando
<?php
        $dav->setUsuario('id',1);
    $dav->setUsuario('senha','r10edomengao');
    $dav->upUsuario('id');
?>
Para excluir basta chamar a função delUsuario($idcampo,$id)(Ou seja você passa no 1 parametro o campo da clasula where e o valor no 2 parametro) Excluindo
<?php 
    $dav->delUsuario('id',1);
?>
Para exibir os dados, a varias opções. Exibindo 1. Opção passando nenhum parametro você ira colocar na clasula where todos os campos setados
<?php
       $dav->setUsuario('login','David');
    $dav->setUsuario('senha','r10edomengao');
    $dav->viewUsuario();
?>
2.Opção mostrar todos registro da tabela so passar 1 como parametro(não necessario setar nenhum campo).
<?php
    $dav->viewUsuario(1);
?>
3.Opção você faz a query personalizada pegando valores dos campos setados , basta colocar 1 no primeiro parâmetro e no segundo a query.
<?php
       $dav->setUsuario('id',2);
       $dav->viewUsuario(1,'SELECT * FROM usuarios id > :id');
?>
4.Opção você faz a query personalizada sem pegar os valores nos campos setados, basta colocar 2 no primeiro parâmetro e no segundo a query.
<?php 
      $dav->viewUsuario(2,'SELECT * FROM usuarios id > 2'); 
?>
E para mostra o registros na tela basta fazer do jeito que você faria sem não tivesse usando a classe OBS.:stm é o objeto que executa a função execute($this->stm->execute();)
<?php
while($fetch = $dav->stm->fetch(PDO::FETCH_OBJ)){
        echo $fetch->id."<br>";
    }
?>

Pronto é so isso...

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...