一尘不染

Python MySQLdb更新查询失败

mysql

好的。我在这里建立了一个mysql查询浏览器,例如navicat。使用MySQLdb执行查询。

这是奇怪的部分。当我通过程序运行查询(使用MySQLdb)时,它给我成功,受影响的行= 1,但是当我在phpmyadmin中查看该查询时,该值没有改变。

因此,在执行查询之前,我先将其打印出来,然后将其复制并粘贴到phpmyadmin的查询窗口中,然后单击go即可运行。长话短说,更新查询不起作用,但是当我复制并粘贴到phpmyadmin中时,它就起作用了。

self.tbl.sql.use(self.tbl.database)       # switches to correct database. I've printed this and it uses the corrected db
if self.tbl.sql.execute(query) == True:
    print sql_obj.rows_affected()         # returns 1 (since i only do 1 query)

这是SQL类的一部分

def execute(self, query):

    try:
        self.cursor.execute(query)
        return True
    except MySQLdb.ProgrammingError as error:
        print "---->SQL Error: %s" % error
        return False
    except MySQLdb.IntegrityError as e:
        print "--->SQL Error: %s" % e    
        return False

那么有什么想法会发生什么呢?


阅读 280

收藏
2020-05-17

共1个答案

一尘不染

只是一个猜测:也许Python中的代码正在事务中运行,并且可能需要显式提交事务?

编辑:MySQLdb FAQ中有一个可能相关的条目

2020-05-17