4

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

3 回答 3

5

谢谢@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()
于 2012-10-09T15:11:12.503 回答
2

cursor.close应该是cursor.close(),但您通常只想cursor.commit()确保您的更改反映在您的数据库中。

于 2012-10-09T15:02:13.703 回答
1

需要commit()调用来完成数据库中的事情。文档没有说明是否executemany自动提交更改。还打开自动提交,cursor.autocommit(True)可能会有所帮助。

于 2012-10-09T15:05:26.110 回答