我正在尝试使用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
问题是该命令运行时没有任何错误,但是当我检查该表时,没有添加任何数据。
抱歉,如果这是一个简单的问题,但它在过去的几个小时里让我发疯。
谢谢。
发布于 2012-10-09 23:11:13
谢谢你们,@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-09 23:02:14
cursor.close应该是cursor.close(),但您通常会希望cursor.commit(),以确保您的更改反映在您的数据库中。
发布于 2012-10-09 23:05:26
需要一个commit()调用来完成db中的内容。文档并没有说明executemany是否会自动提交更改。此外,打开自动提交,cursor.autocommit(True)可能会有所帮助。
https://stackoverflow.com/questions/12802883
复制相似问题