python mysql autocommit,关于MySQLdb conn.autocommit(True)

I have installed python 2.7 64bit,MySQL-python-1.2.3.win-amd64-py2.7.exe.

I use the following code to insert data :

class postcon:

def POST(self):

conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charset="utf8")

cursor = conn.cursor()

n = cursor.execute("insert into d_message (mid,title,content,image) values(2,'xx','ccc','fff')")

cursor.close()

conn.close()

if n:

raise web.seeother('/')

This results in printing n as 1, but in mysql client data aren't visible.

google says I must add conn.autocommit(True).

but I don't know why MySQLdb turns it off;

解决方案

I don't know if there's a specific reason to use autocommit with GAE (assuming you are using it). Otherwise, you can just manually commit.

class postcon:

def POST(self):

conn=MySQLdb.connect(host="localhost",user="root",passwd="mysql",db="dang",charset="utf8")

cursor = conn.cursor()

n = cursor.execute("insert into d_message (mid,title,content,image) values(2,'xx','ccc','fff')")

conn.commit() # This right here

cursor.close()

conn.close()

if n:

raise web.seeother('/')

Note that you probably should check if the insert happened successfully, and if not, rollback the commit.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值