【问题标题】:Pymysql Insert Into not workingPymysql插入不起作用
【发布时间】:2013-12-27 10:20:01
【问题描述】:

我在 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,在控制台中:

写入数据库 写给分贝

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

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

【问题讨论】:

标签: python mysql eclipse python-2.7 pymysql


【解决方案1】:

你犯了吗? conn.commit()

【讨论】:

  • 我不知道这件事。谢谢。这样就解决了。
  • 你是我的英雄!
【解决方案2】:

PyMySQL默认禁用autocommit,你可以在connect()中添加autocommit=True

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

或在插入后致电conn.commit()

【讨论】:

  • 谢谢。我正在寻找自动提交示例。太棒了!
  • 2019 年的伙计们,这在 python3.x 中使用 pymysql 时不起作用,这个项目在哪里,以便我们可以创建问题?
  • 我无法轻易找到的一点是您可以稍后使用 connection.autocommit(True) 方法更改自动提交属性
  • 这真的很有帮助,但我不敢相信他们默认不会这样做!
【解决方案3】:

你可以这样做

  • conn.commit() 之前调用close

  • 在创建连接对象后立即通过conn.autocommit(True) 启用自动提交。

在重复的问题中,不同的人都建议了这两种方法,可以在这里找到:Database does not update automatically with MySQL and Python

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-01
    • 2016-03-17
    • 2017-03-23
    • 2014-04-12
    • 1970-01-01
    • 2017-06-11
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多