2014-07-23 68 views
0

我得到一个错误与下面的代码:Python的web.py错误OperationalError:近“名”:语法错误

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 

是什么导致了这个错误,我该如何解决?

回答

3

不要使用字符串插值,尤其是当从网络输入!吸取教训Little Bobby Tables教和使用SQL参数:

DBsearch = LjDB.execute("select * from caiji where post like ?", 
         ('%{}%'.format(searcher),)) 

这是更安全,更快,更灵活。

相关问题