我正在使用Python / Flask并尝试查询我的数据库。
conn = sqlite3.connect('./flaskdb.db')
cur = conn.cursor()
cur.execute('SELECT email FROM users WHERE email=\'%s\'', "name")
我有两列,email, password
和值name, password
作为行/条目之一。
为什么这不起作用?我收到错误:
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 7 supplied.
答案 0 :(得分:0)
我认为你在这里使用准备好的陈述陷入困境。试试这段代码:
conn = sqlite3.connect('./flaskdb.db')
cur = conn.cursor()
name = 'someone@somewhere.com'
cur.execute('SELECT email FROM users WHERE email=?', (name,))
更正包括使用?
作为占位符而不是%s
,后者可能用于其他数据库。另外,如果你想绑定一个名为name
的变量,那么它也不应该有引号。
答案 1 :(得分:0)
我有一个解决方案:
cur.execute('SELECT password FROM users WHERE email=(?)', (email,))
你需要它作为元组,(?)
作为占位符。