问题描述
我有一个错误,它是 sqlite3.OperationalError: no such column: key
,但我不知道是什么问题。我尝试将 .db
文件名从 apiKeys.db
更改为 key.db
,但仍然引发错误 sqlite3.OperationalError: no such column: key
。代码是
class Auth:
conn = sqlite3.connect("key.db")
c = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS key (
key)""")
def add(key):
conn = sqlite3.connect("key.db")
c = conn.cursor()
with conn:
c.execute("INSERT INTO key VALUES (key=:key)",{'key': key})
return True
def get_all():
conn = sqlite3.connect("key.db")
c = conn.cursor()
c.execute("SELECT * FROM key")
return c.fetchall()
def check(key):
conn = sqlite3.connect("key.db")
c = conn.cursor()
c.execute("SELECT * FROM key")
keys = c.fetchall()
if key in keys:
return True
else:
return False
def remove(key):
conn = sqlite3.connect("key.db")
c = conn.cursor()
with conn:
c.execute("DELETE FROM key WHERE (key=:key)",{"key": key})
return True
我添加了
conn = sqlite3.connect("key.db")
c = conn.cursor()
解决方法
此 INSERT INTO key VALUES (key=:key)
不正确 execute syntax。只有占位符应该在 VALUES 子句中,即 VALUES (:key)
。 (remove
方法也有类似的问题)。