def setvariable(cursor, mysqlvar, value, mode='global'): """ Set a global mysql variable to a given value The DB driver will handle quoting of the given value based on its type, thus numeric strings like '3.0' or '8' are illegal, they should be passed as numeric literals. """ if mode == 'persist': query = "SET PERSIST %s = " % mysql_quote_identifier(mysqlvar, 'vars') elif mode == 'global': query = "SET GLOBAL %s = " % mysql_quote_identifier(mysqlvar, 'vars') elif mode == 'persist_only': query = "SET PERSIST_ONLY %s = " % mysql_quote_identifier( mysqlvar, 'vars') try: cursor.execute(query + "%s", (value, )) executed_queries.append(query + "%s" % value) cursor.fetchall() result = True except Exception as e: result = to_native(e) return result
def db_delete(cursor, db): if not db: return False for each_db in db: query = "DROP DATABASE %s" % mysql_quote_identifier(each_db, 'database') executed_commands.append(query) cursor.execute(query) return True
def db_create(cursor, db, encoding, collation): if not db: return False query_params = dict(enc=encoding, collate=collation) res = 0 for each_db in db: query = ['CREATE DATABASE %s' % mysql_quote_identifier(each_db, 'database')] if encoding: query.append("CHARACTER SET %(enc)s") if collation: query.append("COLLATE %(collate)s") query = ' '.join(query) res += cursor.execute(query, query_params) try: executed_commands.append(cursor.mogrify(query, query_params)) except AttributeError: executed_commands.append(cursor._executed) except Exception: executed_commands.append(query) return res > 0