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 位数字。
我到处寻找答案,但没有找到合适的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 位数字。