2012-10-09 37 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)可能会有所帮助。

相关问题