code: def execute(self, query, args=None):
          
          while self.nextset():
              pass
          db = self._get_db()
  
          if isinstance(query, unicode):
              query = query.encode(db.encoding)
  
          if args is not None:
              if isinstance(args, dict):
                  nargs = {}
                  for key, item in args.items():
                      if isinstance(key, unicode):
                          key = key.encode(db.encoding)
                      nargs[key] = db.literal(item)
                  args = nargs
              else:
                  args = tuple(map(db.literal, args))
              try:
                  query = query % args
              except TypeError as m:
                  raise ProgrammingError(str(m))
  
          assert isinstance(query, (bytes, bytearray))
          res = self._query(query)
          return res
docs: Execute a query.
  
          query -- string, query to execute on server
          args -- optional sequence or mapping, parameters to use with query.
  
          Note: If args is a sequence, then %s must be used as the
          parameter placeholder in the query. If a mapping is used,
          %(key)s must be used as the placeholder.
  
          Returns integer represents rows affected, if any