在Python中使用参数化查询时获取错误
问题描述:
我在尝试使用类似查询的sqlite3
db使用python时出现以下错误。在Python中使用参数化查询时获取错误
Error:
Request Method: POST
Request URL: http://127.0.0.1:8000/search/
Django Version: 1.11.2
Exception Type: ProgrammingError
Exception Value:Incorrect number of bindings supplied. The current statement uses 1, and there are 3 supplied.
我下面解释我的查询。
rname = request.POST.get('rname')
keyword = '%' + rname + '%'
cursor.execute("SELECT * FROM booking_meeting WHERE room_name LIKE ? ",(keyword))
在这里,我需要从每个关键字的表中获取值。请帮我解决这个错误。
答
尝试:
keyword = '%"' + rname + '"%'
或
keyword = '%\'' + rname + '\'%'
空间在keyword
可能导致3个参数的认可。
答
cursor.execute("SELECT * FROM booking_meeting WHERE room_name LIKE ? ",(keyword))
execute
的第二个参数必须是即使只有一个参数的元组:
cursor.execute("SELECT * FROM booking_meeting WHERE room_name LIKE ? ",(keyword,))
#^
请停止使用原始的SQL像这样琐碎的查询。 –