db = sqlite3.connect("SQL database")
cursor = db.cursor()
query = 'DELETE FROM Item WHERE ItemID = {}'.format(self.ID)
cursor.execute(query)
db.commit()
cursor.close()
不确定为什么会出现此错误,因为我的代码似乎是正确的。 错误是无论 self.ID 是什么值,错误都表明没有这样的列是该值。
例如self.ID = "你好"
错误是:
no such column: "hello"
任何帮助将不胜感激,谢谢
最佳答案
您的查询如下:
DELETE FROM Item WHERE ItemID = hello
错误消息在这种情况下很有帮助。
改为:
db = sqlite3.connect("SQL database")
cursor = db.cursor()
query = 'DELETE FROM Item WHERE ItemID = ?'
cursor.execute(query, (self.ID,))
db.commit()
cursor.close()
注意事项:
- sqlite3 的参数占位符是
?
。 - 参数值应该是
.execute()
的第二个参数 - 该参数应作为序列传递给
.execute()
。一个元组就可以了。
关于python - python中没有这样的列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659616/