我收到以下代码的错误:
class SomePage:
def GET(self,name):
conn = sqlite3.connect('./DB/ershou.db')
LjDB = conn.cursor()
searcher = web.input()
DBsearch = LjDB.execute("select * from caiji where post like '%%%s%%'"%(searcher))
for ss in DBsearch:
print ss[1],
print ss[2]
return searcher.name
这就是我所说的错误:
OperationalError: near "name": syntax error
导致此错误的原因是什么,我该如何解决?
答案 0 :(得分:3)
从网络上获取输入时,请勿使用字符串插值,尤其!学习课程Little Bobby Tables教授并使用SQL参数:
DBsearch = LjDB.execute("select * from caiji where post like ?",
('%{}%'.format(searcher),))
这更安全,更快捷,更灵活。