About MySQLdb conn.autocommit(True)

mysql-python, python

Solution

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.

Problem

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;

Original source

Related problems