본문 바로가기
파이썬

파이썬 MySQLdb conn.autocommit (True) 정보

by º기록 2021. 2. 10.
반응형

python 2.7 64bit, MySQL-python-1.2.3.win-amd64-py2.7.exe를 설치했습니다.

다음 코드를 사용하여 데이터를 삽입합니다.

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('/')

이로 인해 n이 1로 인쇄되지만 mysql 클라이언트에서는 데이터가 표시되지 않습니다.

Google은 conn.autocommit (True) 를 추가해야한다고 말합니다.

하지만 MySQLdb가 왜 그것을 끄는 지 모르겠습니다.

 

해결 방법

 

GAE와 함께 자동 커밋을 사용하는 특별한 이유가 있는지 모르겠습니다 (사용한다고 가정). 그렇지 않으면 수동으로 커밋 할 수 있습니다.

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('/')

삽입이 성공적으로 수행되었는지 확인하고 그렇지 않은 경우 커밋을 롤백해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/12059424

 

 

반응형

댓글