MySQL 中的 Python 变量执行命令

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


这是我的代码:


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(10' at line 1")


使用 5.5.52-MariaDB。


慕虎7371278
浏览 173回答 1
1回答

繁花如伊

问题不在于占位符,而在于日期格式。表名中不允许出现字符“/”。尝试类似:table_name = today_date.split(" ")[0].replace("/","")我假设您的日期格式中的所有数字都是 2 位数字。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python