2014-07-23 60 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),)) 

這是更安全,更快,更靈活。

相關問題