2017-07-27 68 views
0

我一直在嘗試使用Python 3和sqlite模塊進行參數化的SQL查詢,並用一個變量成功完成。但是,當使用兩個變量時,出現「IndexError:元組索引超出範圍」錯誤。任何建議是什麼導致這個錯誤?Python 3 sqlite參數化SQL查詢

sql = ("select exists(SELECT * from USERS where PASSWORD = '{0}' AND USERNAME = '{1}')") 
args = (var1,var2) 
cursor = database_connection.execute((sql).format(args)) 

回答

2

決不填寫您的SQL命令生項目,這個項目要求SQL注入攻擊。

使用內置的填充功能。

sql = "select exists(SELECT * from USERS where PASSWORD = ? AND USERNAME = ?)" 
args = (var1,var2) 
cursor = database_connection.execute(sql, args) 
+0

不錯。你通過使用'* args'(但忘了說出來......)修正錯誤,並堅持正確使用參數化查詢。 –

+0

你的建議會拋出一個「TypeError:函數最多需要2個參數(給出3個)」的錯誤。第一行中還缺少一個括號。 –

+0

對不起,修正了這個問題。 – user1735003