【发布时间】:2018-04-02 14:33:46
【问题描述】:
我正在尝试使用变量将数据插入到后续表中。以下语句是导致错误的语句:
cursor.execute("INSERT INTO %s (avg_time,max_time) VALUES (%s,%s)", (SOURCE, reav, remax))
错误是:
_mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MariaDB 服务器对应的手册 在 ''USA' (avg_time,max_time) 附近使用正确语法的版本 VALUES ('6.997','7.071')' 在第 1 行")
有人知道我哪里出错了吗?
【问题讨论】:
-
您使用什么库进行连接?问题在于您如何插入表名,但在我知道您正在使用的库之前我无能为力
-
我完全是编程新手,但我有一个导入语句:import MySQLdb --- 这意味着库是 MySQLdb,对吧?
-
你确定表名可以用
%s给出吗? -
@SzabolcsDombi in
psycopg2你可以使用AsIs函数,但我不确定MySQLdb是否有这样的变体 -
@SzabolcsDombi 你是正确的。 SQL 不喜欢将表名作为变量。我将整个 SQL 命令保存为 python 中的 str 变量,并将该变量传递给 cursor.execute() 函数。有效。谢谢大家!