Um envoltório pdo é realmente exagerado? [fechadas]

Eu fiz algumas pesquisas sobre o uso de um banco de dados para meus dados. No entanto, eu li alguns posts onde as pessoas afirmam que você não deve usar o PDO para um banco de dados porque ele já é um.

Isso pode ser verdade, mas ainda estou convencido de que tem muitos benefícios.

Você lida com todas as suas ações de dados (crud) em uma classe, não espalhadas pelos arquivos do seu site. Portanto, é muito mais fácil depurar e manipular erros.Você pode facilmente mudar sua classe com outra databaseclass.Você não precisa repetir o seu código, basta ligar para o código no databaseclassOpcionalmente, você pode estender a classe com, por exemplo, registros, testes estatísticos, ...

Exemplo:

<?php
class Database
{
    public $connection; 
    private $host = "";
    private $username = "";
    private $password = "";
    private $dbname = "";

    public function __construct(){      
        $this->connection = new PDO("mysql:host=$this->host;dbname=$this->dbname",$this->username,$this->password,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    public function insert($query, array $data){        
        $this->connection->prepare($query)->execute($data);     
        return $this->connection->lastInsertId();
    }

    public function update($query, array $data) {
        $stmt = $this->executeQuery($query,$data);
        return $stmt->rowCount();       
    }

    public function delete($query, array $data) {
        $stmt = $this->executeQuery($query,$data);
        return $stmt->rowCount();       
    }

    public function findOne($query, array $data = null){        
        $stmt = $this->executeQuery($query,$data);          
        return $stmt->fetchObject();
    }

    public function findMany($query, array $data = null){
        $stmt = $this->executeQuery($query,$data);
        return($stmt->fetchAll(PDO::FETCH_OBJ));
    }

    public function executeQuery($query,$data = null){
        $stmt = $this->connection->prepare($query);
        $stmt->execute($data);
        return $stmt;
    }
}
?>

Em vez de repetir constantemente todas as etapas para recuperar dados, você pode chamar get () e passar uma consulta e alguns parâmetros opcionais. Isso é muito mais eficiente do que toda vez que abrir uma conexão, executar 3 linhas de código e fechá-lo.

$db->get("select * from user where id = ?",array(1));

questionAnswers(2)

yourAnswerToTheQuestion