Python MySQL语法错误

时间:2011-07-08 19:02:40

标签: python mysql

我一直在努力找出我一天中大部分时间都去过的地方,但仍然无法解决这个问题,盯着它看的时间太长了,我在学习Python的过程中很早就开始学习&安培;的MySQL。

我建立的查询是:

query = "UPDATE `db`.`%s" % table + "` SET %s" % table + "`.`%s" % field + "` = `%s" % daychangeperc + "` WHERE (`db`.`%s" % table + "`.`id` = %s" % rowid +") LIMIT 1;"

我得到的错误是:

_mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'. DayChange = '-0.00736251627767' WHERE ( outofthe_finance附近使用正确的语法. test1 . id` = 1)'在第1行“)

任何人都能指出我哪里出错了?我相信这对许多人来说可能是显而易见的。

提前致谢。

2 个答案:

答案 0 :(得分:2)

这非常混乱,或许尝试这样做:

query = """UPDATE db.%s SET %s.%s = %s WHERE db.%s.id = %s LIMIT 1""" % (table,table,field,daychangeperc,table,rowid)

答案 1 :(得分:1)

首先,这是您的查询重写,以便格式字符串的所有参数都在最后:

query = "UPDATE `db`.`%s` SET %s`.`%s` = `%s` WHERE (`db`.`%s`.`id` = %s) LIMIT 1;" \
 %(table,table,field,daychangeperc,table,rowid)

当您以这种方式查看时,您可以看到SET关键字后面有一些不平衡的反向标记。我认为这是问题所在,很难看出因为你写了你的字符串。