2012-10-09 63 views
3

,如下所示:MySQLdb的executemany不加入我試圖將數據添加到使用MySQLdb的executemany命令的表(test_copy)數據

db = mdb.connect(host="127.0.0.1",port=3306,user='XXXX',db="test") 
cursor = db.cursor() 
COM = "insert into test_copy (Short_Model) VALUES (%s)" 
VALS = ['213','3232','fd','sadad'] 
cursor.executemany(COM,VALS) 
cursor.close 

注:表命名= test_copy,列名= Short_Model

問題是命令運行時沒有任何錯誤,但是當我檢查表時沒有添加任何數據。

道歉,如果這是一個簡單的問題,但它在過去幾個小時裏讓我瘋狂。

謝謝。

回答

4

謝謝@Jon Clements和@Abhishek Mishra - 你已經恢復了我的理智。對於那些感興趣的最終解決方案:

db = mdb.connect(host="127.0.0.1",port=3306,user='xxxx',db="test") 
cursor = db.cursor() 
COM = "insert into test_copy (Short_Model) VALUES (%s)" 
VALS = ['213','3232','fd','sadad'] 
cursor.executemany(COM,VALS) 
db.commit() 
2

cursor.close應該是cursor.close(),但您通常會想要cursor.commit()只是爲了確保您的更改反映在您的數據庫中。

+0

cursor.commit()是錯誤的,它應該是db.commit() – Jun

1

A commit()調用是需要在db中完成的東西。該文檔不明確executemany是否自動提交更改。同時打開自動提交,cursor.autocommit(True)可能會有所幫助。

相關問題