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

Class Connection com SQL Dica de facilidade


Ezequiel AC

Pergunta

Saudações, Vou postar um código PHP que talvez seja útil para quem  tem duvidas em fazer class de conexão no PHP.

 

class Connection {
	
      private  $user = "root";
      private  $pass = "";
      private  $name = "database";
      private  $host = "localhost";
      private  $type = "mysql";
      private  $port = 3306;
      
      function connection(){
   
      switch ($this->type){
            case 'pgsql':
            $conn = new PDO("pgsql:dbname={$this->name}; user={$this->user}; password={$this->pass};host=$this->host;port={$this->port}");
                break;
            case 'mysql':
            $conn = new PDO("mysql:host={$this->host};port={$this->port};dbname={$this->name};charset=utf8", $this->user, $this->pass);
                break;
            case 'sqlite':
            $conn = new PDO("sqlite:{$this->name}");
                break;
            case 'ibase':
            $conn = new PDO("firebird:dbname={$this->name}", $this->user, $this->pass);
                break;
            case 'oci8':
            $conn = new PDO("oci:dbname={$this->name}", $this->pass, $this->user);
                break;
            case 'mssql':
            $conn = new PDO("mssql:host={$this->host},1433;dbname={$this->name}", $this->user, $this->pass);
                break;
        }
        // define para que o PDO lance exceções na ocorrência de erros
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $conn;
    }
}

class SQL extends Connection {
	function __construct() {
		
		
	}
	
	 function sql($type,$table_name,$array,$whereSQL,$return){
	 	
	 	 switch ($type){
            case 'INSERT':
            $fildes = array_keys($array);
           $sql = "INSERT INTO ". $table_name . " (".implode(",",$fildes).")"." VALUES " . "('". implode("','",$array)."')";    
            $conn = $this->connection();
            $add = $conn->query($sql);
            $conn = NULL;
            if($add){
				echo $return;
			}else{
				echo("<p>Error ao inserir registro.</p>");
			}
            break;
            case 'UPDATE':
            $sql="UPDATE {$table_name} SET ";   
            $sets = array();
           
           foreach($array as $column => $value){
            $sets[] = $column." = '".$value."'";
            }
           
            $sql .= implode(', ', $sets);
            $sql .= $whereSQL;
            $conn =  $this->connection();
            $update = $conn->query($sql);
            $conn = NULL; 
            if($update){
				echo $return;
			}else{
				echo("<p>Error ao atualizar registro.</p>");
			}    
            break;  
            case 'DELETE':
            $sql = "DELETE FROM {$table_name} {$whereSQL}";  
            $conn = $this->connection();
            $delete = $conn->query($sql);
	 	    $conn = NULL;  
	 	    if($delete){
				echo $return;
			}else{
				echo("<p>Error ao deletar registro.</p>");
			}   
             break;
        }
	 	
	 }
	
}




Modo de usar

$account_array = array("email"=>$email->email,
                       "password"=>$_POST["Senha"],
                       "profile_id"=>uniqid());	
	
$sql = new SQL();

$sql->sql("DELETE","account",$account_array,"WHERE id=2","Registro deletado com suceeso");

$sql->sql("INSERT","account",$account_array,NULL,"Feito novo registro com sucesso");

$sql->sql("UPDATE","account",$account_array,"WHERE id=1","Feito atualização.");

Se servir pra alguém...  ta aí ! 

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...