def update_data(self):
db = sqlite3.connect("SQLite database")
cursor = db.cursor()
cursor.execute("""UPDATE Item SET ? = ? WHERE itemid = ? """,(self.field, self.value, self.ID))
db.commit()
cursor.close()
该错误表明"?"附近存在语法错误。但是我没看到问题所在。
注意:这是具有完全定义属性的类的方法。
非常感谢
答案 0 :(得分:0)
?
字符在其出现的任何位置都不会被替换,只能放置表达式。因此,尝试使用?
作为列名是sqlite3语法错误。
您可以使用
query = 'update Item set {} = ? where itemid = ?'.format(self.field)
cursor.execute(query, (self.value, self.ID))
当然,你需要清除self.field
注射攻击。