关于MySQLdb conn.autocommit(True)

发布于 2021-01-29 18:20:12

我已经安装了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客户端数据中不可见。

谷歌说我必须添加conn.autocommit(True)

但是我不知道为什么MySQLdb将其关闭;

关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我不知道在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('/')
    

    请注意,您可能应该检查插入是否成功完成,否则,请回滚提交。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看