python3.5的pymysql执行sql提示成功,实际并未成功
PHP中文网
PHP中文网 2017-04-17 17:44:31
0
1
1041

使用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配置信息都是填写正确的
不会存在修改为另外的一个数据库

PHP中文网
PHP中文网

认证0级讲师

reply all(1)
刘奇

pymysql will have a parameter autocommit when connecting to the database. The default is False, indicating whether to automatically submit to the real database after executing the SQL statement. If it is not set to True, then you need to explicitly submit after executing the SQL statement. , that is, conn.commit()

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template