python - python中没有这样的列错误

标签 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 = "你好"

错误是:

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

注意事项:

  1. sqlite3 的参数占位符是?
  2. 参数值应该是.execute()的第二个参数
  3. 该参数应作为序列传递给 .execute()。一个元组就可以了。

关于python - python中没有这样的列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659616/

相关文章:

Python 不提交插入查询

python - 如何在 Django Rest Framework 序列化程序中捕获 sql 错误?

javascript - 使用 tedious(Node.js) 执行 SQL 查询

MySQL创建数据库表查询

python - 具有大数据集的 Python 中的心烦图

python - 抓取表仅返回 "tbody"而不是 tbody 的内容

python - Netconf 连接从 Python 脚本终止

Mysql限制当整个列表可能改变

php - MySql 查询以在 Chartjs 中显示数据

java - 从 Oracle 数据库检索 Java 代码中自动生成的 ID