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):
classe Usuarios
Código (PHP):
teste.php onde faço os teste pra ver se esta funcionando
Código (PHP):
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!
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
?>
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
?>
// 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");
?>
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!