2011-08-16 98 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")' 

然而,當,我執行命令:

cursor.execute(query) 

我得到這個錯誤

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')

我試圖引號,但我的其他幾個組合不能爲我的生活弄清楚我做錯了什麼。 任何想法?謝謝!

+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