2017-07-27 179 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