插入似乎没有发生

时间:2011-05-20 23:07:47

标签: python mysql gevent

我正在使用gevent和gevent-mysql(我也使用pymysql来达到同样的效果)。它确实选择很好,但无论我做什么我都无法运行插入。我没有想法。

conn = geventmysql.connect(host='localhost', port=3306, user='root', db='content')
cur = conn.cursor()
cur.execute("insert into placement (placement_name, some_id) values ('static', 1)")
cur.close()
conn.close()

3 个答案:

答案 0 :(得分:3)

如果您使用的是事务存储引擎(如InnoDB),则应检查autocommit变量的值:http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_autocommit

如果是0,您需要使用内置的commit()方法或execute("COMMIT")来提交您的交易。

答案 1 :(得分:2)

如果geventmysql的工作方式与其他python数据库API类似,则需要调用commit才能提交对数据库的任何更改。除非geventmysql

答案 2 :(得分:1)

Python DB API中,一切都是隐含的交易。如果在未提交的情况下关闭连接,则会回滚。这样做:

conn.commit()
cur.close()
conn.close()