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

Classe MySQL


david.lyonnais

Pergunta

Ai vai uma classe que eu editei... pegando ideias e funções não criadas inteiramente por mim, e algumas editadas...

mysql.class.php

<?php
/*
Classe para conexão ao banco de dados , select , insert ,update e delete
e alguns metodos utieis como transforma data de yyyy-mm-dd para dd/mm/yyyy e vice - versa e uma anti sql injection

Funções simplificadas para maior entedimento
Não é uma classe que eu criei e sim codigos pegos e modificados se necessarios
@editor: David Guilherme // pois não nenhuma criada inteiramente por mim
@data: 03/08/2010
*/
class MySQL{
    //Variaveis de acesso ao banco de dados
    var $host = 'servidor';
    var $login = 'usuario';
    var $senha = 'senha';
    var $banco = 'banco';
    //Variavel de Resposta
    var $conec;
    //Metodo Construtor
    function MySQL(){
        $this->conec = mysql_connect($this->host,$this->login,$this->senha);
        if ($this->conec){
            $result = mysql_select_db($this->banco,$this->conec);
        if (! $result){
            echo 'Conexão ao database falhou, ao escolher o banco de dados';
            $ret = 0;
            }else{
                $ret = $this->conec;    
            }
        }else{
            echo 'Conexão ao database falhou,ao tentar conectar ao seu database MySQL';
            $ret = 0;
    }
    return ($ret);
    }
    //Metodo de execusão do sql
    function querySQL($sql){
        $result = mysql_query($sql,$this->conec);
        if (! $result){
            echo 'Erro ao tentar executar um codigo sql';
            $res = 0;
        }else{
            $res = $result;    
        }
        return ($res);
    }
    //Metodo inserir dados indepedente da ordem que estão listados
    /*
    Formato: $infoarray = array(array("valor a ser inserido","campo da tabela");
    ex.:
    $infoarray = array( array("$usuario","usuario"),
                    array("$senha","senha"),
                    array("$nomeCompleto","nomeCompleto"),
                    array("$data","dataNascimento"),
                    array("$email","email"),
                    array("$id","id"));
    
    */
    function insertSQL($tabela,$infoarray){
        $resposta = $this-> querySQL("select * from $tabela");
        if($resposta){
            $sql = "insert into $tabela  values (";
            
            while($objcampos = mysql_fetch_field($resposta)){
                $campotabela = $objcampos->name;
                
                reset($infoarray);
                
                while(list($chave) = each($infoarray)){
                    $valor = $infoarray[$chave][0];
                    
                    $campo = $infoarray[$chave][1];
                    
                    if($campotabela == $campo){
                    $sql .= "\"$valor\",";
                    }
                }
            }
                $sql = substr($sql,0,strlen($sql)-1).")";
                $res = $this-> querySQL($sql);
                return ($res);
        }
    }
    //Metodo atualizar dados indepedente da ordem colocada
    /*
    Colocar 1 o campo que vai servi de clasula pra o where e 0 para o resto 
    Formato: $infoarray = array(array("valor a ser inserido","campo da tabela","where");
    ex.:
    $infoarray = array( array("$usuario","usuario","0"),
                    array("$senha","senha","0"),
                    array("$nomeCompleto","nomeCompleto","0"),
                    array("$data","dataNascimento","0"),
                    array("$email","email","0"),
                    array("$id","id","1"));
    
    */
    function updateSQL($tabela,$infoarray){
        $sql = "update $tabela set";
        $whereid = " where ";
        
        while (list($chave) = each($infoarray)){
            $valor = $infoarray[$chave][0];
                    
            $campo = $infoarray[$chave][1];
            
            $where = $infoarray[$chave][2];
            
            if($where){
                $whereid .= "$campo = \"$valor\" AND";
            }else{
                $sql .= "$campo = \"$valor\","; 
            }
        }
        $whereid = substr($whereid,0,strlen($whereid)-4);
        $sql = substr($sql,0,strlen($sql)-1).$whereid;
        $res = $this->querySQL($sql);
        return ($res);
    }
    //Metodo excluir dados
    function deleteSQL($tabela,$idcampo,$id){
        $res = $this->querySQL("delete from $tabela where $campo = \"$id\" ");
        return ($res);
    }
    //Metodos pra inverter o formato data de brasileiro para americano e vice-versa
        // Formata data aaaa-mm-dd para dd/mm/aaaa
    function databr($datasql) {
        if (!empty($datasql)){
            $p_dt = explode('-',$datasql);
            $data_br = $p_dt[2].'/'.$p_dt[1].'/'.$p_dt[0];
            return $data_br;
        }
    }

        // Formata data dd/mm/aaaa para aaaa-mm-dd
    function datasql($databr) {
        if (!empty($databr)){
            $p_dt = explode('/',$databr);
            $data_sql = $p_dt[2].'-'.$p_dt[1].'-'.$p_dt[0];
            return $data_sql;
        }
    }
    //Metodo anti-injection
    function anti_injection($sql) {
     // remove palavras que contenham sintaxe sql
         $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
         $sql = trim($sql);//limpa espaços vazio
         $sql = strip_tags($sql);//tira tags html e php
         $sql = addslashes($sql);//Adiciona barras invertidas a uma string
 return $sql;
     }
}

?>

Obs.: Nas funções insertSQL, updateSQL não é nescessario coloca os valores na mesma ordem dos campos da tabela

Qualquer erro so posta ai...

Editado por david.lyonnais
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...