MySQLdb python 2.7

MySQLdb python 2.7

主要目的是将变量传递给语句,但它不适合 mysql 语法,请问我在这里做错了什么可以得到一些指导吗?

def sql_usercreation(endpoint, dbuser, dbpassword, username, password):

    db = MySQLdb.connect(endpoint, dbuser, dbpassword)

    cursor = db.cursor()
    cstmnt = cursor.execute("CREATE USER IF NOT EXIST %s@'%' IDENTIFIED BY %s",[username,password])
    dbguser = cursor.execute("select user,host from mysql.user")
    dboutput = cursor.fetchall()
    db.commit()
    db.close()
    print(dboutput)

sql_usercreation("hostendpointaddress", "dbadmin", "passworddbadmin", "username", "password")

错误:

    query = query % args
ValueError: unsupported format character ''' (0x27) at index 30

您必须将 % 字符转义为 %%

cursor.execute("CREATE USER IF NOT EXIST %s@'%%' IDENTIFIED BY %s",[username,password])