def _execute(self,
                 native,
                 command,
                 data=None,
                 returning=True,
                 mapper=dict):
        """
        Executes the inputted command into the current \
        connection cursor.

        :param      command    | <str>
                    data       | <dict> || None

        :return     [{<str> key: <variant>, ..}, ..], <int> count
        """
        if data is None:
            data = {}

        with native.cursor() as cursor:
            log.debug('***********************')
            log.debug(command % data)
            log.debug('***********************')

            try:
                rowcount = 0
                for cmd in command.split(';'):
                    cmd = cmd.strip()
                    if cmd:
                        cursor.execute(cmd.strip(';') + ';', data)
                        rowcount += cursor.rowcount

            # look for a disconnection error
            except pymysql.InterfaceError:
                raise orb.errors.ConnectionLost()

            # look for integrity errors
            except (pymysql.IntegrityError, pymysql.OperationalError) as err:
                native.rollback()

                # look for a duplicate error
                if err[0] == 1062:
                    raise orb.errors.DuplicateEntryFound(err[1])

                # look for a reference error
                reference_error = re.search('Key .* is still referenced from table ".*"', nstr(err))
                if reference_error:
                    msg = 'Cannot remove this record, it is still being referenced.'
                    raise orb.errors.CannotDelete(msg)

                # unknown error
                log.debug(traceback.print_exc())
                raise orb.errors.QueryFailed(command, data, nstr(err))

            # connection has closed underneath the hood
            except pymysql.Error as err:
                native.rollback()
                log.error(traceback.print_exc())
                raise orb.errors.QueryFailed(command, data, nstr(err))

            try:
                raw = cursor.fetchall()
                results = [mapper(record) for record in raw]
            except pymysql.ProgrammingError:
                results = []

            return results, rowcount