我正在尝试将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,它解决了问题的一部分,但仍然给了我错误。
也许我在代码中遗漏了一些东西?
答案 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 + '%'),)