MySQLdb executemany不添加数据

时间:2012-10-09 14:57:43

标签: python mysql mysql-python

我正在尝试使用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

注意:Table的名称= test_copy,Column Name = Short_Model

问题是命令运行时没有任何错误,但是当我检查表时没有添加任何数据。

道歉,如果这是一个简单的问题,但它让我在过去几个小时疯狂。

感谢。

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:2)

cursor.close应为cursor.close(),但您通常希望cursor.commit()只是为了确保您的更改会反映在您的数据库中。

答案 2 :(得分:1)

需要commit()调用来完成db中的事情。如果executemany自动提交更改,则文档不会澄清。同时启用自动提交,cursor.autocommit(True)可能会有所帮助。