使用python3.5执行sql语句(update)完成后,返回正确的影响行数
然后在使用pymysql获取刚刚update的数据,返回的数据也是修改过的
但是
我又使用sqlyog去看刚才修改的记录
发现根本没变
具体如下:
mysql类:
class MysqlClass: def __init__(self, host, user, passwd, dbName, port=3306): self.conn = pymysql.connect( host=host, port=port, user=user, passwd=passwd, db=dbName, charset='latin1', cursorclass=pymysql.cursors.DictCursor ) self.cur = self.conn.cursor() # 执行sql,并返回句柄 def query(self, sql): return self.cur.execute(sql) # 执行sql后返回关联数组 def getAll(self,sql): self.query(sql) return self.cur.fetchall()
然后我实例化mysql类并执行update语句:
mysql = MysqlClass('121.*.*.*','root','m*.*m','Stest') print(mysql.query("update qpkwinfos set page=0,rank=0 where id = 10003"))
一共影响了1行
然后我使用sqlyog查看刚刚update的记录,发现page和rank字段的值没有变化
研究了一个早上了,也没发现是什么问题
在网上搜索也没发现,但是我用PHP又可以正常的修改字段
本机配置:
win10企业版
python3.5
mysql5.5
备注:
mysql配置信息都是填写正确的
不会存在修改为另外的一个数据库
pymysql在連接資料庫的時候會有一個參數autocommit預設為False,表示執行完SQL語句後是否自動提交到真正的資料庫,如果沒有設定為True,那麼你執行sql過後,是需要明確提交的,即conn.commit()