我在Eclipse中从PyDev运行它......
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 :(得分:99)
conn.commit()
答案 1 :(得分:90)
PyMySQL默认禁用自动提交,您可以将autocommit=True
添加到connect
:
conn = pymysql.connect(
host='localhost',
user='user',
passwd='passwd',
db='db',
autocommit=True
)
或在查询后致电conn.commit()
答案 2 :(得分:2)
你可以做
conn.commit()
之前close
或
conn.autocommit(True)
启用自动提交。这两种方式都是由不同的人建议的,可以在这里找到重复的问题:Database does not update automatically with MySQL and Python