Работа с базами данных через PDO/отследить ошибки в запросах

    class bb
{

    public $connect;
    public $db_id;

    function __construct() {
    
        $this->connect = new PDO('mysql:dbname=table;host=localhost', 'user', 'pass', [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'", PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

        //$this->connect->errorInfo() && $this->display_error($this->connect->errorInfo(), $this->zp);

    }

    
    function query($sql, $value, $type = 'fetchAll')
    {
        $this->zp = $sql;
        $this->sql = $this->connect->prepare($sql);
        $this->sql->execute($value);

        return $this->sql->fetchAll();
    }

    function display_error($error, $sql = '')
    {
        global $time;

        //print_r($sql);
        //print_r($error);

    }

    function __destruct() {
        
        //$this->db_id && mysqli_close($this->db_id);
        //$this->db_id = false;

    }
    
}

$bb = new bb;
print_r($bb->query("SELECT * FROM `news` WHERE `id` = ?", ['269']));

Как прописать

$type = 'fetchAll'

return $this->sql->($type)();

Не работает, через if в крайнем случаи. Хотелось бы как то так сделать...

Второй вопрос, как верно отлавливать ошибки в запросе?

$this->connect->errorInfo() && $this->display_error($this->connect->errorInfo(), $this->zp);

Каждый раз при запросе вызывается почему то... Отдает

Array ( [0] => 00000 [1] => [2] => )

Ответы (0 шт):