Pymysql Insert Into无法正常工作

时间:2013-12-10 03:14:34

标签: python mysql eclipse python-2.7 pymysql

我在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中查看表时,它是空的。没有插入记录。

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

3 个答案:

答案 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