【发布时间】:2015-10-07 11:38:33
【问题描述】:
我正在尝试进行选择
query = "select * from snmptt order by id desc limit %s", limit
cursorMYSQL.execute(query)
我从表单中得到限制
limit = form_limit.cleaned_data['limit']
我已经在插入中使用了这种语法(而不是 %)并且它起作用了,所以我不明白为什么它现在不起作用。
谢谢!
【问题讨论】:
-
但是首先让我问你一个问题,为什么你在使用Django的时候要创建一个游标并手动执行这样一个简单的查询?
-
如果你把它改成
"select * from snmptt order by id desc limit %s" % limit会发生什么? -
@cezar 使用
"..." % limit是个坏主意。它可能有效,但它不安全,并且容易受到 SQL 注入的攻击。 -
什么意思?怎么会这样?
-
这里的 cmets 并不是解释 SQL 注入的最佳场所,所以我建议你做一些研究。简而言之,如果不转义参数,则危险在于用户可以执行类似
select * from snmptt order by id desc limit 5; drop table snmptt;的操作。