Python 在MySQL命令中使用%s时出现问题
我试图(通过使用python脚本)自动创建MySQL角色,但由于某些原因,我无法将字符串变量放入MySQL命令中。到目前为止,我得到的是:Python 在MySQL命令中使用%s时出现问题,python,mysql,Python,Mysql,我试图(通过使用python脚本)自动创建MySQL角色,但由于某些原因,我无法将字符串变量放入MySQL命令中。到目前为止,我得到的是: #!/usr/bin/python3 import mysql.connector from mysql.connector import errorcode # Open database connection try: serverHostName='localhost' userName='root'
#!/usr/bin/python3
import mysql.connector
from mysql.connector import errorcode
# Open database connection
try:
serverHostName='localhost'
userName='root'
passwd='password'
databaseName='mysql'
roleName='reader'
cnx = mysql.connector.connect(
host=serverHostName,
database=databaseName,
user=userName,
password=passwd)
cursor=cnx.cursor(prepared=True)
dropRole="""DROP ROLE IF EXISTS %s """
print(dropRole, roleName)
#cursor.execute(dropRole, roleName)
#cnx.commit()
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cnx.close()
print("You have successfully disconnected from your MySQL database")
结果如下:
DROP ROLE IF EXISTS %s reader
You have successfully disconnected from your MySQL database
如果有人能向我解释为什么%s和读卡器出现在我的打印行中,我将不胜感激。您没有调用格式化操作符将
roleName
替换到字符串中,所以它只是打印格式字符串。使用%
运算符执行格式化
print(dropRole % roleName)