protected function prepare(string $sql, array $params = []): \PDOStatement
    {
        $stmt = $this->handler()->prepare($sql);
        $stmt->execute($params);

        $this->log($sql, $params);

        return $stmt;
    }
protected function prepare(string $sql, array $params = []): \PDOStatement
    {
        $stmt = $this->handler()->prepare($sql);
        $stmt->execute($params);

        $this->log($sql, $params);

        return $stmt;
    }
protected function prepare ( string $ sql , array $ params = [ ] ) : \ PDOStatement { $ stmt = $ this -> handler ( ) -> prepare ( $ sql ) ; $ stmt -> execute ( $ params ) ; $ this -> log ( $ sql , $ params ) ; return $ stmt ; }
Prepare SQL query and return PDO Statement

@param  string $sql    SQL query with placeholders
@param  array  $params params for query placeholders

@todo Switch to PDO::activeQueryString() when it will be possible
@link https://wiki.php.net/rfc/debugging_pdo_prepared_statement_emulation

@return \PDOStatement
@throws DbException
Prepare SQL query and return PDO Statement