我寫在DB直接與蟒蛇光標對象插入腳本錯誤與Python光標
cursor.execute("INSERT INTO info ([height], [weight],[type]) VALUES (%s,%s,%s)" % (height, manufacturerid, weight))
有時候,我沒有爲「重」一些,它拋出一個錯誤:
Incorrect syntax near ','. (102) (SQLExecDirectW)")
如何處理這樣的錯誤?
我寫在DB直接與蟒蛇光標對象插入腳本錯誤與Python光標
cursor.execute("INSERT INTO info ([height], [weight],[type]) VALUES (%s,%s,%s)" % (height, manufacturerid, weight))
有時候,我沒有爲「重」一些,它拋出一個錯誤:
Incorrect syntax near ','. (102) (SQLExecDirectW)")
如何處理這樣的錯誤?
有了嘗試,除了看到python文檔:https://docs.python.org/2/tutorial/errors.html
你不應該使用字符串格式化的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
與文檔根據,你應該永遠不會做這樣的查詢(你的樣子):
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獲得更多幫助。