10

我正在使用带有 MySQLdb 32 位的 Python 2.7,以及在本地运行的 MySQL 5.5.8。

我把自己逼疯了,我从来没有见过这样的事情。

基本上,我通过以下方式将记录从 Python 插入 MySQL:

db=MySQLdb.connect(host="localhost",user="root", passwd="mypassword",db="python",port=3307)
cur=db.cursor()
cur.execute("INSERT INTO mytable(myfield) VALUES(%s);","somedata")

我已经验证它连接正确并且它可以成功地SELECT从数据库中获取数据。

这是奇怪的部分:从 MySQL 查询浏览器(GUI 工具)和通过 CMD 从 MySQL,我无法看到插入的记录。

我可以从我的 Python 脚本中插入和选择记录,但它们不会出现在我的数据库中,它只是返回Empty Set (0.00 sec)

这是真正奇怪的部分:我可以从 GUI 工具和控制台截断和删除数据。

总结一下:我可以从 Python 脚本中插入和选择数据。我在 MySQL 中看不到该数据。但是,我可以使用 MySQL 截断和删除该数据。

在这一点上,我完全迷失了。

4

1 回答 1

23

如果您的代码在控制台中有效,但在其他情况下无效,我相信您需要添加该行

db.autocommit(True)

连接后或您需要db.commit()在插入后执行。

于 2012-04-04T07:11:26.340 回答