mysql execute命令中的python变量

nimxete2  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(377)

我到处都在找答案,没找到合适的。
这是我的密码:

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字符(第1行10')
使用5.5.52-mariadb。
谢谢您!
编辑:
设法挺过来了。谢谢帕维尔·弗朗克í雷克请求帮助。

wmvff8tz

wmvff8tz1#

问题不是占位符,而是日期格式。表名中不允许使用字符“/”。尝试以下操作:

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

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

相关问题