public function execute(array $values = []): QueryResult
    {
        try {
            if ($this->pdoStatement->execute($values)) {
                return new PdoQueryResult($this->pdoStatement);
            }

            throw new DatabaseException('Executing the prepared statement failed.');
        } catch (PDOException $pdoe) {
            throw new DatabaseException($pdoe->getMessage(), $pdoe);
        }
    }