好的。我在这里建立了一个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
那么有什么想法会发生什么呢?
只是一个猜测:也许Python中的代码正在事务中运行,并且可能需要显式提交事务?
编辑:MySQLdb FAQ中有一个可能相关的条目。