我正在使用带有MySQLdb 32bit的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工具)和MySQL通过CMD,我无法看到插入的记录。
我可以从我的Python脚本插入和选择记录,但它们不会显示在我的数据库中,它只返回Empty Set (0.00 sec)
这是非常奇怪的部分:我可以从GUI工具和控制台截断和删除数据。
总结一下:我可以从Python脚本插入和选择数据。我无法在MySQL中看到这些数据。但是,我可以使用MySQL截断并删除该数据。
此时我完全迷失了。
答案 0 :(得分:20)
如果你的代码在控制台中工作但不是其他,我相信你需要添加一行
db.autocommit(True)
连接后,或者在插入后需要db.commit()
。