2011-07-08 50 views
-1

我一直在努力研究一天中大部分時間我去過的地方,但仍然無法解決,一直盯着它太久,我很早就在sqill我學習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" 行)

任何人都能夠指出w ^我在這裏出錯了?我相信這很可能是很明顯的。

在此先感謝。

+3

打印變量'查詢'的值,這可能有幫助 – triclosan

回答

2

這是相當混亂,也許嘗試做這樣的代替:

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

這兩個答案工作很好,是一個有用的技巧,學習,謝謝。 – Mike

1

首先,這裏是你的查詢重新編寫,以便所有的都在最後爲你的格式字符串參數:

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

當你這樣看時,你可以看到在SET關鍵字之後,你有一些不平衡的反標記。我認爲這是問題,並且由於您編寫字符串的方式而難以查看。