public function execute($array, $stmt = 'stmt'): Database
    {
        $this->values = [];
        $this->lastid = null;
        $stmt         = 'prepare_' . $stmt;
        try {
            $sth = $this->$stmt->execute($array);
        } catch (PDOException $e) {
            throw new CoreException(
                __CLASS__.'::execute()->PDOStatement::execute() : '.$e->getMessage()
            );
        }
        if ($sth instanceof PDOStatement) {
            try {
                $this->values = $sth->fetchAll($this->configs['fetch_mode']);
            } catch (PDOException $e) {
                throw new CoreException(
                    __CLASS__.'::execute()->PDOStatement::fetchAll() : '
                    . $e->getMessage()
                );
            }
        }

        $store_sql = $stmt . '_sql';
        if (false !== strpos($this->$store_sql, 'insert')) {
            try {
                $this->lastid = $this->connection->lastInsertId();
            } catch (PDOException $e) {
                throw new CoreException(
                    __CLASS__.'::execute()->PDO::lastInsertId() : '.$e->getMessage()
                );
            }
        }

        return $this;
    }