我試圖執行以下命令,設置「store」=「result」,代碼列等於「代碼」的行。Python的Mysql更新執行命令
cursor.execute("""UPDATE pjStores SET %s=%s WHERE code=%s""", (store, result, code))
我不斷收到以下錯誤,但:
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1087'=1 WHERE code='Madness16'' at line 1")
如果該命令的變量是:
store=1087
result=1
code=Madness16
這是我第一次真正使用MySQL,所以我新對此。我一直在這條線上停留了2個小時,並且無法弄清楚我做錯了什麼。我試着在MySQL下面的命令,並將其正確運行:按要求
UPDATE pjStores SET `1087`=1 WHERE code='Madness16'
更多代碼:
# Step through stores
cursor.execute("SHOW COLUMNS FROM pjStores")
stores = cursor.fetchall()
cursor.execute("SELECT code FROM pjStores")
codes = cursor.fetchall()
for store in stores[1:]: # Hack to skip first entry
pj.setStore(store[0])
for code in codes:
result = pj.checkCode(code[0])
cursor.execute ("""UPDATE pjStores SET %d=%s WHERE code=%s""", (store[0], result, code[0]))
這就像你有一個報價問題,如果你看看錯誤(='瘋狂16「)它是真的嗎? – 2012-03-24 04:13:49
爲什麼你使用整數字段名? 1087不應該是字段名稱,而應該是ID。 這個問題可能是由字符串和整數混合造成的,但除非我們看到更多的代碼,否則不能確定。 – Doa 2012-03-24 04:18:54
@JeremyD引號問題就在這篇文章中,實際的錯誤顯示了兩個單引號而不是雙引號。我更新了文章,以便格式正確。 – xur17 2012-03-24 04:22:12