我正在使用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()
答案 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()