Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MySQL语法错误_Python_Mysql - Fatal编程技术网

Python MySQL语法错误

Python MySQL语法错误,python,mysql,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;" 我得到的错误是:

我一天中大部分时间都在试图找出我要去的地方,但仍然无法找到答案,盯着它看太久了,我很早就开始学习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”附近使用的正确语法,其中第1行的outof_finance.test1.id`=1

有人能指出我哪里出了问题吗?我相信这对很多人来说是显而易见的


提前谢谢。

这太麻烦了,或许可以试着这样做:

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

首先,这里是重新编写的查询,以便格式字符串的所有参数都位于末尾:

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

当你这样看它的时候,你可以看到在SET关键字之后,你有一些不平衡的回勾。我认为这就是问题所在,很难看到,因为您是如何编写字符串的。

打印变量“query”的值这可能有助于两个答案都很有效,而且是一个有用的学习技巧,谢谢。