我對python和mysql也很陌生,目前正試圖「將數據插入到表中,我在我的機器上的WAMP服務器上設置了事件。我需要存儲到數據庫中的數據存儲在我的python程序中的各種數組中,並且這些數據都被正確存儲了。我能夠通過python程序成功連接到本地數據庫,但是我的mysql語法有問題當我寫入數據庫時插入數據庫時,Python腳本中的Mysql語法錯誤
我希望有人能夠幫助我 - 我基本上已經設置了一個for循環來將存儲在數組中的元素寫入我在本地機器上設置的數據庫(localhost) 。
length = range(len(event_ids))
imageid = 0
for z in length:
cur.execute("""INSERT INTO events (event_id, event_title, start_time, stop_time, venue_id, image_id, all_day, venue_name) VALUES (%s, %s, %s, %s, %s, %s, %s, %s""" %(event_ids[z], event_names1[z], start_times1[z], stop_times1[z], venue_ids1[z], imageid, all_day_list1[z], venue_names1[z]))
db.commit()
cursor.close()
db.close()
我收到的錯誤包括以下信息。這裏顯示的元素是從我已經成功指定的數組中讀取的「@ 2013042020,Prodijig Dublin,2013-04-20 20:00:00,2013-04-20 23:59:00,V0-001-0 :」。我只是不知道爲什麼我收到SQL語法錯誤。我真的很感激,如果任何人都可以泄露我可能出錯的信息。
錯誤:
cur.execute("""INSERT INTO events (event_id, event_title, start_time, stop_time, venue_id, image_id, all_day, venue_name) VALUES (%s, %s, %s, %s, %s, %s, %s, %s""" %(event_ids[z], event_names1[z], start_times1[z], stop_times1[z], venue_ids1[z], imageid, all_day_list1[z], venue_names1[z]))
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 202, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
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 '@2013042020, Prodijig Dublin, 2013-04-20 20:00:00, 2013-04-20 23:59:00, V0-001-0' at line 1")
編輯:我有下面的討論不過我現在收到這個代碼後修復「IndexError:列表索引超出範圍」的錯誤由於某種原因,我目前還不能解釋和我的python程序在35次迭代後終止(當它迭代並向數據庫插入元素50次時)。如果有人能夠幫助我,我會非常感激。然而,這可能與此聲明無關 - 我現在不確定。
我固定的MySQL插入到代碼反正是:
cur.execute('INSERT INTO events (event_id, event_title, start_time, stop_time, venue_id, image_id, all_day, venue_name) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)' , (event_ids[z], event_names1[z], start_times1[z], stop_times1[z], venue_ids1[z], imageid, all_day_list1[z], venue_names1[z]))
嗨@Barmar我已經試過這條線的代碼並收到以下錯誤: ProgrammingError:(1064,「您的SQL語法有錯誤;請檢查與您的MySQL服務器版本對應的手冊,以在第一行使用正確的語法」) – Karen 2013-04-20 19:07:00
可以與我寫入數據庫的字符串中的「'」有什麼關係?我想不出別的什麼!儘管謝謝你的回答! – Karen 2013-04-20 19:07:49
mysql查詢中允許使用單引號。你能打印出查詢字符串嗎? – Barmar 2013-04-20 19:26:40