2011-08-16 4 views
1

나는 데이터베이스에 행을 삽입하는 데 사용할 쿼리를 포함하는 문자열이 어디 그래서 난 내 프로그램의 시점에있어 : ​​그러나파이썬 MySQL의 문제

query = '"INSERT INTO new_test (test_name, IP, test_run_date, results_query_time, run_time) VALUES (%s, %s, %s, %s, %s)", ("new_test", "192.168.17.194", "143917160811", "12.4847829342", "46.1268320084")' 

을 때 나는 따옴표하지만 몇 가지 다른 조합을 시도

ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'"INSERT INTO new_test (test_name, IP, test_run_date, results_query_time, run_tim\' at line 1')

이 오류를 얻을

cursor.execute(query) 

: 나는 명령을 실행 내 인생에서 내가 뭘 잘못하고 있는지 알아낼 수는 없어. 어떤 아이디어? 감사!

+1

문자열 조작을 사용하여 쿼리를 작성하지 마십시오. 사용자로부터 데이터가 유출되는 경우 SQL 주입 공격까지 스스로를 개방합니다. Python DB API는 매개 변수화 된 쿼리를 지원합니다. 그것을 써. – cdhowie

답변

5

쿼리 시작 부분에 "이 추가로 있습니다. 그건 분명히 그것을 깨뜨릴 것입니다. 원하는 것처럼 보입니다.

# notice the extra ' around the %s 
query = """INSERT INTO new_test 
       (test_name, IP, test_run_date, results_query_time, run_time) 
      VALUES ('%s', '%s', '%s', '%s', '%s')""" % \ 
      ("new_test", "192.168.17.194", "143917160811", 
      "12.4847829342", "46.1268320084") 
+0

고맙습니다. – mike