docs: def execQuery(self, sql, parameters = None, cursorClass = MySQLdb.cursors.Cursor, InnoDB = False):
  		"""Execute SQL query."""
  		i = 0
  		errcode = 0
  		caughte = None
  		while i < self.numTries:
  			i += 1
  			try:	
  				cursor = self.connection.cursor(cursorClass)
  				if parameters:
  					errcode = cursor.execute(sql, parameters)
  				else:
  					errcode = cursor.execute(sql)
  				if InnoDB:
  					self.connection.commit()
  				results = cursor.fetchall()
  				self.lastrowid = int(cursor.lastrowid)
  				cursor.close()
  				return results
  			except MySQLdb.OperationalError, e:
  				errcode = e[0]
  				# errcodes of 2006 or 2013 usually indicate a dropped connection  
  				# errcode 1100 is an error with table locking
  				print(e)
  				self.connection.ping(True)
  				caughte = e
  				continue
  			except:				
  				traceback.print_exc()
  				break
  		
  		sys.stderr.write("\nSQL execution error in query at %s:" % datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
  		sys.stderr.write("\n %s." % sql)
  		sys.stderr.flush()
  		sys.stderr.write("\nErrorcode: '%s'.\n" % (str(caughte)))
  		sys.stderr.flush()
  		raise MySQLdb.OperationalError(caughte)