2016-04-27 95 views
0

我寫在DB直接與蟒蛇光標對象插入腳本錯誤與Python光標

cursor.execute("INSERT INTO info ([height], [weight],[type]) VALUES (%s,%s,%s)" % (height, manufacturerid, weight)) 

有時候,我沒有爲「重」一些,它拋出一個錯誤:

Incorrect syntax near ','. (102) (SQLExecDirectW)") 

如何處理這樣的錯誤?

回答

0

你不應該使用字符串格式化的SQL查詢。

相反的:讓這些在層更容易得到處理

cursor.execute("INSERT INTO info ([height], [weight], [type]) VALUES (%s,%s,%s)" %(height, manufacturerid, weight)) 

使用

cursor.execute("INSERT INTO info ([height], [weight], [type]) VALUES (%s,%s,%s)", (height, manufacturerid, weight)) 

可能會解決您的問題,並不會受到SQL注入或問題,像一個你正擁有的。

因爲這似乎是甲骨文,我沒有與Python使用它,請參閱文檔,但PEP 249所指出參數化查詢的佔位符: https://www.python.org/dev/peps/pep-0249/#paramstyle

1

與文檔根據,你應該永遠不會做這樣的查詢(你的樣子):

cursor.execute("INSERT INTO info ([height], [weight],[type]) VALUES (%s,%s,%s)" % (height, manufacturerid, weight)) 

你應該這樣做如下:

cursor.execute("INSERT INTO info ([height], [weight],[type]) VALUES (%s,%s,%s)" , (height, manufacturerid, weight)) 

檢查this獲得更多幫助。