Python MySQL语句返回错误
def _conditional_insert(self, tx, item):
tx.execute('select * from table where text1 = %s', (item['text1'], ))
result = tx.fetchone()
if result:
log.msg("Item already stored in db: %s" % item, level=log.DEBUG)
else:
tx.execute(\
"INSERT INTO table (text3 table, text1, text2) "
"values (%s, %s, %s, %s)",
(item['text3'],
item['table'],
item['text1'],
item['text2'],
)
)
log.msg("Item stored in db: %s" % item, level=log.DEBUG)
def handle_error(self, e):
log.err(e)
但不断收到以下错误:
_mysql_exceptions.ProgrammingError:(1064,“你的SQ有错误) L语法;检查与您的MySQL服务器版本对应的手册 正确的语法在第1行“)附近使用”)
有人能说出我忽略的地方)?
答案 0 :(得分:4)
您在字段规范中text3
后缺少逗号。
INSERT INTO table (text3 table, text1, text2)
应该是:
INSERT INTO table (text3, table, text1, text2)
此外,如果您不将table
括在引号中,我认为{{1}}不是有效的表名或列名,因为它是关键字。