Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 47
Sexo: Masculino
Localização: RJ/Nova Iguaçu/Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

13-11-2008 18:32

Olá. Estou estudando Programação Orientada a Objetos e resolvi tentar montar minha primeira Classe. Como tema, escolhi os comandos MYSQL.

Estou tentando fazer uma classe que englobe todas as funções MYSQL... INSERT, DELETE, SELECT, UPDATE.

Até agora esta bem básico (e provavelmente cheio de erros ainda). Gostaria que me ajudassem a melhorar a classe, dando suas opiniões, apontando erros e/ou melhores maneiras do código funcionar, etc.

class Mysql { var $conect; var $database; var $query; // Inicia a Conexão com a Base de Dados function conectar($host,$db,$usuario,$senha) { $this->conect = mysql_connect($host, $usuario, $senha); if(!$this->conect) { echo "Falha na conexão com o Banco de Dados.<br />"; echo "Erro: " . mysql_error(); die(); } $this->database = mysql_select_db($db, $this->conect); if(!mysql_select_db($db, $this->conect)) { echo "O Bando de Dados solicitado não pode ser aberto.<br />"; echo "Erro: " . mysql_error(); die(); } } ######################################################################################### // Usando INSERT function inserir($tabela,$campo,$valor) { $this->query = mysql_query("INSERT INTO ".$tabela." ('".$campo."') VALUES ('".$valor."')"); if($this->query) { $log = "Cadastrado com sucesso!"; return $log; } else { $log = "Não foi possivel cadastrar! Erro: ".mysql_error(); return $log; } } ######################################################################################### // Usando DELETE function deletar($tabela,$where) { $this->query = mysql_query("DELET FROM ".$tabela." WHERE ".$where.""); if($this->query) { $log = "Dados deletados com sucesso!"; return $log; } else { $log = "Não foi possivel deletar os dados! Erro: ".mysql_error(); return $log; } } ######################################################################################### // Usando UPDATE function atualizar($tabela,$valores) { $this->query = mysql_query("UPDATE ".$tabela." SET ('".$valores."')"); if($this->query) { $log = "Dados atualizados com sucesso!"; return $log; } else { $log = "Não foi possivel atualizar os dados! Erro: ".mysql_error(); return $log; } } ######################################################################################### // Usando SELECT function selecionar($campos,$tabela,$where,$orderby,$alinhamento,$limit) { //SELECT campos FROM tabela if(!empty($campos) && !empty($tabela) && empty($where) && empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela.""); } //SELECT campos FROM tabela WHERE variavel = variavel elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where.""); } //SELECT campos FROM tabela WHERE variavel = variavel LIMIT 5 elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && empty($alinhamento) && !empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." LIMIT ".$limit.""); } //SELECT campos FROM tabela WHERE variavel = variavel DESC elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && !empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ".$alinhamento.""); } //SELECT campos FROM tabela WHERE variavel = variavel ORDER BY variavel elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby.""); } //SELECT campos FROM tabela WHERE variavel = variavel ORDER BY variavel DESC elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && !empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby." ".$alinhamento.""); } //SELECT campos FROM tabela WHERE variavel = variavel ORDER BY variavel DESC LIMIT 5 elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && !empty($alinhamento) && !empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby." ".$alinhamento." LIMIT ".$limit.""); } } ########################################################################################## // Fecha Conexão com a Base de Dados function desconectar() { mysql_close($this->conect); } ########################################################################################### } //Fecha Classe ?> <?php // MODO DE USO include("classe.php"); // Inclui o arquivo da classe $sql = new conectar('localhost','database','user','password'); // Estancia o objeto e já faz a conexão $sql->inserir('tabela','campo','valor'); // Executa INSERT de dados $sql->deletar('tabela','where'); // Executa DELETE de dados $sql->atualizar('tabela','valores') // Executa PUDATE de dados $sql->selecionar('campos','tabela','where','orderby','alinhamento','limit'); // Executa SELECT de dados $sql->desconectar(); // Fecha a conexão com Banco de Dados ?>

Agradeço desde já a atenção e a ajuda de vocês.
:-)
0
O que você mudaria se tivesse Um Dia a Mais?
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17743
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

13-11-2008 18:54

Eu não uso class, mas, parece que está bom. Está funcionando OK?

MOVIDO: de PHP para MySQL
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 47
Sexo: Masculino
Localização: RJ/Nova Iguaçu/Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

13-11-2008 18:56

Está funcionando sim. Só que eu queria fazer ela mais ampla e tornar o código mais enxuto, sabe. Acho que tem muita coisa ainda pra melhorar. Se tiver alguma dica sou todo ouvidos.

Enquanto isso vou mexendo nela aqui. Sempre que mudar algo eu atualizo aqui.
0
O que você mudaria se tivesse Um Dia a Mais?
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17743
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

13-11-2008 18:58

Eu não tenho uma dica porque não uso, mas, o lance é você tentar adaptar sempre da melhor forma para ficar mais usual possível, ai vai ficar muito bom. :-)
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 47
Sexo: Masculino
Localização: RJ/Nova Iguaçu/Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

13-11-2008 18:58

Ah. Eu acho que o topico tem mais a ver com o forum PHP por se tratar de uma duvida relacionada a construção de uma classe e não a utilização dos comandos MYSQL.
0
O que você mudaria se tivesse Um Dia a Mais?
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17743
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

13-11-2008 19:03

Sim, mas faço uma relação de linguagem, tipo, para a pessoa interagir com o script, se ela tiver só PHP não rola, teria que ter MySQL para rodar o script, ai fica no fórum que engloba mais.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 47
Sexo: Masculino
Localização: RJ/Nova Iguaçu/Brasil
Contato:

Classe Mysql (insert, delete, update, select) - Ajuda

17-11-2008 18:57

Atualizei a Classe. Agora o INSERT aceita array, iniciei um tratamento de erros e implantei uma função de anti-injection.

class Mysql { var $conect; var $database; var $query; public function __construct(){ return $this->conectar(); } public function gravando_erros($erro){ $arquivo = fopen('erro.txt','a'); fwrite($arquivo,"[".date("r")."] Erro: $erro\r\n"); fclose($arquivo); } public function erro($msgerro){ $exibemsg = "Ocorreu um problema durante a manipulação dos dados! "; $exibemsg .= "O erro encontrado foi: "; $exibemsg .= "$msgerro"; //Erro MYSQL gravando_erros($msgerro); return $exibemsg; } // Inicia a Conexão com a Base de Dados function conectar($host,$db,$usuario,$senha) { $this->conect = mysql_connect($host, $usuario, $senha); if($this->conect) { return true; } else { erro(mysql_error()); } $this->database = mysql_select_db($db, $this->conect); if(mysql_select_db($db, $this->conect)) { return true; } else { erro(mysql_error()); } } ########################################################################## // Função Anti SQL Injection public function antiSQLinjection($recebe){ $recebe = get_magic_quotes_gpc() == 0 ? addslashes($recebe) : $recebe; // Verifica a configuração de "magic_quotes_gpc" $recebe = strip_tags($recebe); // Limpa as tags HTML $recebe = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|\\\\)/"),"",$recebe); $recebe = preg_replace("@(--|\#|\*|;|=)@s", "", $recebe); return $recebe; } ########################################################################## // Usando INSERT function inserir($tabela,$dados) { // Dividimos o Array dentro de $dados em Chaves e Valores $campos = array_keys($dados); $valores = array_values($dados); //Executamos a Query $this->query = mysql_query("INSERT INTO ".$tabela." (".implode(', ', $campos).") VALUES ('" . implode('\', \'', $valores) . "')"); //Verificamos se a Query foi executada corretamente if($this->query) { return true; } else { return mysql_error(); } } ######################################################################### // Usando DELETE function deletar($tabela,$where) { $this->query = mysql_query("DELETE FROM ".$tabela." WHERE ".$where.""); if($this->query) { return true; } else { return mysql_error(); } } ######################################################################### // Usando UPDATE function atualizar($tabela,$valores) { $this->query = mysql_query("UPDATE ".$tabela." SET ('".$valores."')"); if($this->query) { return true; } else { return mysql_error(); } } ######################################################################### // Usando SELECT function selecionar($campos,$tabela,$where,$orderby,$alinhamento,$limit) { //SELECT campos FROM tabela if(!empty($campos) && !empty($tabela) && empty($where) && empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela.""); return true; } //SELECT campos FROM tabela WHERE variavel = variavel elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where.""); return true; } //SELECT campos FROM tabela WHERE variavel = variavel LIMIT 5 elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && empty($alinhamento) && !empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." LIMIT ".$limit.""); return true; } //SELECT campos FROM tabela WHERE variavel = variavel DESC elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && !empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ".$alinhamento.""); return true; } //SELECT campos FROM tabela WHERE variavel = variavel ORDER BY variavel elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby.""); return true; } //SELECT campos FROM tabela WHERE variavel = variavel ORDER BY variavel DESC elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && !empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby." ".$alinhamento.""); return true; } //SELECT campos FROM tabela WHERE variavel = variavel ORDER BY variavel DESC LIMIT 5 elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && !empty($alinhamento) && !empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby." ".$alinhamento." LIMIT ".$limit.""); return true; } } ############################################################################ // Fecha Conexão com a Base de Dados function desconectar() { mysql_close($this->conect); } ############################################################################ public function __destruct(){ return $this->conectar(); } } //Fecha Classe

0
O que você mudaria se tivesse Um Dia a Mais?

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado