Является ли обертка pdo действительно излишней? [закрыто]

Я провел некоторые исследования по использованию обертки базы данных для моих данных. Тем не менее, я прочитал некоторые посты, где люди утверждают, что вы не должны использовать PDO для упаковщика базы данных, потому что он уже один.

Это может быть так, но я все еще убежден, что это имеет много преимуществ.

Вы обрабатываете все свои действия с данными (crud) в одном классе, а не распределяете по файлам вашего сайта. Так что гораздо проще отлаживать и обрабатывать ошибки.Вы можете легко изменить свой класс с другим классом базы данных.Вам не нужно повторять код, просто вызовите код в классе базы данныхПри желании вы можете расширить класс, например, ведение журнала, статистические тесты, ...

Пример:

<?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;
    }
}
?>

Вместо того, чтобы постоянно повторять все шаги для извлечения данных, вы можете вызвать get () и передать запрос и некоторые необязательные параметры. Это намного эффективнее, чем каждый раз открывать соединение, выполнять 3 строки кода и закрывать его.

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

Ответы на вопрос(2)

Ваш ответ на вопрос