2014-07-23 4 views
0

나는 다음과 같은 코드를 사용하여 오류를 받고 있어요 :파이썬 web.py 오류 OperationalError : 근처의 "이름": 구문 오류

OperationalError: near "name": syntax error 
:

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 

이것은 내가 말하려고하는 오류입니다

이 오류의 원인은 무엇입니까? 어떻게 수정합니까?

답변

3

웹에서 입력을 가져올 때 특히을 사용하지 마십시오! Little Bobby Tables이 가르치는 교훈을 배우고 SQL 매개 변수를 사용

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

이 빠르고, 안전하고,보다 유연.