Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Sugestões - php pdo

$
0
0
buenas galera, tudo bom!

bom tenho aqui umas classes que estou criando para aprender.

classe de conexao com o banco de dados


Código (PHP):
<?php
class Conexao extends PDO {
                private $dataBase = 'mysql';
                private $host = 'localhost';
                private $dbName = 'nome_do_banco';
                private $user = 'nome_usuario';
                private $pass = 'senha_usuario';
                static $conexao = NULL;
               
                public function __construct(){
                        try{
                                self::$conexao = parent::__construct($this->dataBase.':host='.$this->host.';dbname='.$this->dbName, $this->user, $this->pass);
                                self::$conexao = parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                        }catch(PDOException $e){
                                echo 'Erro ao se conectar a base de dados'.$e->getMessage();
                        }
                }// __construct
               
                public function __destruct(){
                        self::$conexao = NULL;
                }// __destruct
               
                public function insert($dados, $tabela){
                        //INSERT INTO tabela (campos) VALUES (valores)
                        $sql = "INSERT INTO ".$tabela." (";
                        foreach($dados as $key => $value):
                                $campos[] = $key;
                                is_numeric($value) ? $valores[] = $value : $valores[] = "'".$value."'";
                        endforeach;
                        $sql .= implode(", ", $campos).") VALUES (".implode(", ", $valores).")";
                        $query = $this->prepare($sql);
                        $query->execute();
                        echo $sql;
                }// insert
               
                public function update($dados, $tabela){}
                public function select($dados, $tabela){}
                public function delete($dados, $tabela){}
               
        }// Conexao
?>

classe Usuarios

Código (PHP):
require_once("Conexao.class.php");
// estendo a classe usuarios da classe conexao para fazer as transaçoes com o banco.
        class Usuarios extends Conexao {
                private $nome;
                private $email;
                private $senha;
               
                public function setNome($nome){
                        $this->nome = $nome;
                }// setNome
               
                public function setEmail($email){
                        $this->email = $email;
                }// setEmail
               
                public function setSenha($senha){
                        $this->senha = $senha;
                }// setSenha
               
                public function getNome(){ return $this->nome; }
                public function getEmail(){ return $this->email; }
                public function getSenha(){ return$this->senha; }
               
// criei essa funcao para inserir os dados no banco, chamando a funcao insert(classe da conexao)
//não sei se é correto fazer isto, mas esta funcionando.
         public function inserir($dados, $tabela){
                        //pega as variaveis da classe e as coloca em um array $dados
                        $dados = get_object_vars($dados);
                        //chama a função insert da classe pai
                        parent::insert($dados, $tabela);
                }
        } // Usuarios
?>

teste.php onde faço os teste pra ver se esta funcionando
Código (PHP):
<?php
        require_once("Usuarios.class.php");
       
        $user = new Usuarios();
       
// insiro dados nas variaves da classe Usuarios
        $user->setNome("Testando as classses");
        $user->setEmail("teste@teste.com");
        $user->setSenha("12345");

// chamo a funcao inserir (classe usuarios) e passo pra ela o objeto criado da propria classe e
// a tabela que desejo inserir os dados.
// testei e está funcionando tudo certo, fez a inserção no banco de dados sem dar erro algum.
        $user->inserir($user, "tabela_usuarios");
?>

e ai pessoal nao sei se o que eu fiz está correto, pois estou fazendo para aprender...

entao gostaria da opiniao dos mais experientes se está correto o que estou fazendo, se

posso fazer assim, e sugestoes de melhorias.

desde já agradeço a todos!

Viewing all articles
Browse latest Browse all 14700