2017-07-08 51 views
0

我在嘗試使用類似查詢的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)) 

在這裏,我需要從每個關鍵字的表中獲取值。請幫我解決這個錯誤。

+0

請停止使用原始的SQL像這樣瑣碎的查詢。 –

回答

-1

嘗試:

keyword = '%"' + rname + '"%' 

keyword = '%\'' + rname + '\'%' 

空間在keyword可能導致3個參數的認可。

1

cursor.execute("SELECT * FROM booking_meeting WHERE room_name LIKE ? ",(keyword))

execute的第二個參數必須是即使只有一個參數的元組:

cursor.execute("SELECT * FROM booking_meeting WHERE room_name LIKE ? ",(keyword,)) 
                      #^