當我運行以下SQL語句時,出現「運算符錯誤附近」?「」錯誤;Python中的SQLite3更新錯誤
key = 'field_a'
value = '01/01/2011'
#self.testac = '010101010'
self.qry.execute('''UPDATE data_base SET ?=? WHERE atnumber = ?''',(key, value, self.testac))
self.qry.commit()
鍵和值是根據用戶想要編輯的字段動態生成的,這就是爲什麼SET語句有?=?
任何想法?
謝謝!
可以混合使用 '?'和字符串替換?例如:('''UPDATE data_base SET%s =?WHERE atnumber =?''',(key,value,self.testac)或者在這種情況下,對所有變量使用字符串格式是更好的做法?謝謝! –
Python使用printf風格的語法(使用'%'運算符)或Windows風格的可擴展語法(使用'format()'方法)進行字符串格式化 - 既不使用'?'作爲特殊(他們可能會或可能不會與SQLite查詢語法衝突,但在您的示例中沒有) – millimoose
@LanceCollins我用一個我想到的例子更新了答案,我使用printf樣式格式,因爲我是更多習慣它,但建議在新代碼中使用新式格式。 – millimoose