2016-02-26 100 views
1
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是错误状态,没有这样的列是那个值。python中没有这样的列错误

例如self.ID = “你好”

的错误是:

no such column: "hello" 

任何帮助,将不胜感激,谢谢

回答

1

你的查询看起来像:

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() 

注:

  1. 参数占位sqlite3的是?
  2. 参数值应该是第二个参数.execute()
  3. 该参数应作为序列传递给.execute()。元组很好。
+0

我不确定这是否与您的答案有关,但它表示当前语句在提供3个时使用1绑定? – Diran

+0

确定'self.ID'是什么? – bernie

+0

对不起,我完全错过了这个评论,我忘了添加逗号xD谢谢你的帮助,虽然 – Diran