首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQLdb执行任何不添加数据的操作

MySQLdb执行任何不添加数据的操作
EN

Stack Overflow用户
提问于 2012-10-09 22:57:43
回答 3查看 3K关注 0票数 4

我正在尝试使用MySQLdb executemany命令将数据添加到表(test_copy)中,如下所示:

代码语言:javascript
复制
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

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

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

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-09 23:11:13

谢谢你们,@Jon Clements和@Abhishek Mishra -你们让我恢复了理智。以下是对感兴趣的人的最终解决方案:

代码语言:javascript
复制
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()
票数 4
EN

Stack Overflow用户

发布于 2012-10-09 23:02:14

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

票数 2
EN

Stack Overflow用户

发布于 2012-10-09 23:05:26

需要一个commit()调用来完成db中的内容。文档并没有说明executemany是否会自动提交更改。此外,打开自动提交,cursor.autocommit(True)可能会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12802883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档