2
c.execute("UPDATE Players SET %s = %d WHERE nick=%s",
(parts[1], int(parts[2]), parts[0]))
是給我的錯誤與執行參數問題鍵入MySQLdb的
TypeError: %d format: a number is required, not str
我知道execute
應該只%s
,但parts[2]
應強制轉換爲int,becacuse這將是一個int(輸入爲一個字符串)。
所以,如果我只放%s
的,當然它想出了這個錯誤:
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 "
"''wins' = '450' WHERE nick='xan'' at line 1")
因爲wins
是一個整數。 這是什麼解決方案?
由於伯尼,替換字符串,然後使用執行沒有獲得成功。 我知道sql注入,這部分軟件的使用保留給管理員! – nitrnitr
乾杯,隊友。快樂的編碼。 – bernie