Python MySQL 中的变量执行命令

Python variables in MySQL execute command

我到处寻找答案,但没有找到合适的table。

这是我的代码:

conn = pymysql.Connect(host="host", user="user", passwd="password", db="database")

dbhandler = conn.cursor()
table_name = today_date.split(" ")[0]
execute_it = """CREATE TABLE %s (
        USERNAME CHAR(20) NOT NULL, 
        X CHAR(10), 
        Y INT, 
        Z INT, 
        A INT)"""

try:
    dbhandler.execute(execute_it, table_name)
except:
    print("\n----------------------------\nFailed to create table.")

现在我尝试这样做了。 我尝试在执行中使用 % 分隔。 我试过?而不是 %s。 我尝试了更多选项,但其中 none 对我有用,但我未能创建 table

这是我得到的异常:

(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''11/14/18' (\n USERNAME CHAR(20) NOT NULL, \n
X CHAR(10' at line 1")

使用 5.5.52-MariaDB。

谢谢!

编辑:

设法通过它。 感谢 Pavel Francírek 的帮助。

问题不在占位符中,而是在日期格式中。 table 名称中不允许使用字符“/”。尝试类似的东西:

table_name = today_date.split(" ")[0].replace("/","")

我假设您的日期格式中的所有数字都是 2 位数字。