我在本網站和其他許多網站上搜索過高和低,並且發現了類似的問題,但沒有一個答案對我有用(通常只是考慮了元組)。我正在編寫一個python腳本來解析html頁面並填充數據庫。我幾乎一切工作,除了填充部分...MySQLdb執行
這裏是代碼段與MySQL數據庫交易(注:使用python的MySQLdb的模塊)
conn = MySQLdb.connect(user="root", passwd="xxxxx",db="nutrients")
cur = conn.cursor()
test = "Canned Corn"
cur.execute("INSERT INTO food (name) VALUES (%s)", (test,))
conn.commit()
我首先用解析的測試它字符串,但沒有工作。這給了我2個錯誤:
回溯(最近通話最後一個): 文件 「C:\ Python32 \ LIB \站點包\ MySQLdb的\ cursors.py」,線路171,在執行 R = self._query(query) 文件「C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py」,行330,in _query rowcount = self._do_query(q) 文件「C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py「,第294行,在_do_query中 db.query(q) _mysql_exceptions.ProgrammingError:(1064,」您的SQL語法錯誤 ;檢查與您的MySQL服務器版本爲正確的s yntax使用近 '%S)' 第1" 行)
回溯(最近通話最後一個): 文件 「C:\ Python32 \ LIB \站點包\ MySQLdb的\ cursors.py」,行171,在執行 r = self._query(query) 文件「C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py」,行330,in _query rowcount = self._do_query(q) File 「C:\ Python32 \ lib \ site-packages \ MySQLdb \ cursors.py」,第294行,在_do_query中 db.query(q) _mysql_exceptions.ProgrammingError :(1064,「您的SQL語法錯誤 ;檢查對應於你的MySQL服務器版本的正確s yntax在1" 號線附近使用「%S)」)手動
爲什麼這個查詢不行!?
更新:幾乎把我的頭髮拉出後,我決定回到2.7.3,並猜測什麼......現在一切正常了:D應該知道這是一種類型的錯誤......感謝幫助, !
@ user145896是您的表中唯一的名稱列嗎? – jcho360
也許嘗試捕捉字符串裏面,如下所示:str =「INSERT INTO food(name)VALUES」+ test然後cur.execute(str) –
@ jcho360不,不過我可以只指定1列和SQL中的數據 – Odub