sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用0,并且提供了9

时间:2017-03-16 12:52:34

标签: python sqlite

我正在尝试将input变量用于SELECT语句,但会收到以下错误。

这是我的代码:

sheetname=input("Enter the name of the SEO Analysis sheet:")
cur=conn.execute("select * from seo_info where url like '%?%'",sheetname,)
print(cur.fetchall())

这是一个错误:

File "E:/Python/SEO_Project2.py", line 40, in <module>
cur=conn.execute("select * from seo_info where url like '%?%'",sheetname,)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 9 supplied.

以下是another question,它解决了问题的一部分,但仍然给了我错误。
也许我在代码中遗漏了一些东西?

2 个答案:

答案 0 :(得分:1)

我做到了!

cur=conn.execute("select * from seo_info where url like (?)",['%'+sheetname+'%'])

答案 1 :(得分:0)

你真的不需要在?附近使用括号,所以你可以使用list来实现你想要的,作为execute的第二个参数:

cur = conn.execute('SELECT * FROM seo_info WHERE url LIKE ?', ['%' + sheetname + '%'])

tuple

cur = conn.execute('SELECT * FROM seo_info WHERE url LIKE ?', ('%' + sheetname + '%'),)