2013-12-10 44 views
39

我从PyDev的Eclipse中运行这个...Pymysql插入进不工作

import pymysql 
conn = pymysql.connect(host='localhost', port=3306, user='userid', passwd='password', db='fan') 
cur = conn.cursor() 
print "writing to db" 
cur.execute("INSERT INTO cbs_transactions(leagueID) VALUES ('test val')") 
print "wrote to db" 

其结果是,在控制台顶部,它说C:... test.py,并在控制台:

写入DB 写信给DB

,所以它不是终止,直到执行命令后。但是当我在MySQL中查看表格时,它是空的。没有插入记录。

首先,它为什么不写出记录。其次,如何查看日志或错误以查看发生了什么。如果代码失败,通常应该会出现某种红色错误。

+0

的[数据库不会与MySQL和Python自动更新]可能的复制(https://开头计算器.com/questions/384228/database-does-not-update-automatically-with-mysql-and-python) – Simeon

回答

76

你犯了吗? conn.commit()

+0

我不知道这件事。谢谢。这解决了它。 –

72

PyMySQL默认情况下禁用自动提交,您可以添加autocommit=Trueconnect:查询后

conn = pymysql.connect(
    host='localhost', 
    user='user', 
    passwd='passwd', 
    db='db', 
    autocommit=True 
) 

或致电conn.commit()

+0

谢谢。我正在寻找自动提交的例子。优秀! – davesave

+0

完美答案:)谢谢! –