MySQL中的Python变量执行命令

时间:2018-11-14 13:28:12

标签: python mysql mysql-python mysql-error-1064

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

这是我的代码:

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。 我尝试了更多选项,但没有一个选项适合我,但是我无法创建表

这是我得到的例外:

  

(1064,“您的SQL语法有误;请查看   对应于您的MariaDB服务器版本,以使用正确的语法   靠近``11/14/18''(\ n USERNAME CHAR(20)NOT NULL,\ n
  X CHAR(第1行的10'“)

使用5.5.52-MariaDB。

谢谢!

编辑:

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

1 个答案:

答案 0 :(得分:0)

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

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

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