python中没有这样的列错误

时间:2016-02-26 18:59:02

标签: python sql database sqlite

    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 =" hello"

错误是:

 no such column: "hello" 

感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分: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. 的第二个参数
  4. 该参数应作为序列传递给.execute()。一个元组很好。