pymysql之cur.fetchall() 和cur.fetchone()用法详解


Posted in Python onMay 15, 2020

我就废话不多说了,大家还是直接看代码吧!

import pymysql,hashlib
结果:单条结果 {'id': 1, 'name': '打车', 'phone': '132453'}

sql = 'select * from zxj'
def op_mysql(sql,many=True):
 db_info = {'user': 'jxz', 'password': '123456',
  'host': '118*******', 'db': 'jxz', 'port': 3306, 'charset': 'utf8',
  'autocommit': True}
 conn = pymysql.connect(**db_info) # 建立连接
 cur = conn.cursor(pymysql.cursors.DictCursor) # 游标
 cur.execute(sql) # 执行sql语句,insert 、update 、delete
 if many:
 result = cur.fetchall()
 print('多条',result)
 else:
 result = cur.fetchone() # {''}
 print('dantiao',result)
 cur.close()
 conn.close()
 return result
op_mysql(sql,many=False) # 传入sql, 默认为true

=================================
md5加盐2
def md5(s,salt=''):
 new_s = str(s) + salt
 m = hashlib.md5(new_s.encode())
 return m.hexdigest()```

补充知识:python pymssql使用时,使用fetchone获取的值怎么在while里操作多条数据

项目描述:

想把status状态为1的数据查出来然后再通过while 遍历update 数据,为了清楚测试时候的数据。

刚开始的代码是这样的。

#coding:utf-8
import pymssql
def connect():
connect=pymssql.connect((‘x.x.x.x'),‘x',‘x',‘x')

cursor = connect.cursor() # 创建游标
sql001='select *from xxxxx where xxxxx=273and Status=1 order by sysno desc'#查询语句
cursor.execute(sql001)
row=cursor.fetchone()#读取查询结果
print(row)
if row==None:
 print("没有查到数据")
else:

 while row:
 print("sysno=%s" % (row[0]))
 cursor.execute("update xxxxx set Status=-1 where SysNo=%d", row[0]) # 执行语句\
 connect.commit()
 print(row)
 #cursor.execute(sql001)
 row=cursor.fetchone()
 #print(row)

connect()

报错信息:

File “D:/JiCaiZhuanTi/Case/test.py”, line 22, in connect
row=cursor.fetchone()
File “src\pymssql.pyx”, line 507, in pymssql.Cursor.fetchone
pymssql.OperationalError: Statement not executed or executed statement has no resultset

自己查了不少文章,以前没有对这块有所涉及,因为本人是菜鸟,用到哪就看到哪。也仔细看了fetchone() 、fetchall() 还有pymssql的对数据库的基本炒作。看了好久在最后灵光一闪理解错误在哪里了。

错误出在while里的connect.commit()后直接又row=cursor.fetchone()而while里是(返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None)因为我上一个查询是update语句,更新sql语句不会返回resultset,所以会报错。

然后我就这样改了一下,:

while row:
print(“sysno=%s” % (row[0]))
cursor.execute(“update xxxxx set Status=-1 where SysNo=%d”, row[0]) # 执行语句
connect.commit()
print(row)
cursor.execute(sql001)
row=cursor.fetchone()

在获取sql执行获取结果的 row=cursor.fetchone()我再去调用一次查询再次获取想要的数据。

我觉得应该有更好的办法,就是再第一次获取查询结果把所需要的sysno都拿出来,然后再while,这样可以减少对数据库的调用。

目前还没有写出来代码,不知道思路对不对,大家可以留言讨论下。

以上这篇pymysql之cur.fetchall() 和cur.fetchone()用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python paramiko实现ssh远程访问的方法
Dec 03 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python中的测试模块unittest和doctest的使用教程
Apr 14 Python
Python实现选择排序
Jun 04 Python
python实现简易内存监控
Jun 21 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
Django中使用MySQL5.5的教程
Dec 18 Python
多个python文件调用logging模块报错误
Feb 12 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
如何利用python正则表达式匹配版本信息
Dec 09 Python
Python实现socket库网络通信套接字
Jun 04 Python
django 利用Q对象与F对象进行查询的实现
May 15 #Python
Python实现电视里的5毛特效实例代码详解
May 15 #Python
python中wx模块的具体使用方法
May 15 #Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 #Python
python随机模块random的22种函数(小结)
May 15 #Python
将pymysql获取到的数据类型是tuple转化为pandas方式
May 15 #Python
python 数据库查询返回list或tuple实例
May 15 #Python
You might like
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
ECMAScript6--解构
2017/03/30 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
Python如何生成树形图案
2018/01/03 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
Python post请求实现代码实例
2020/02/28 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
一套PHP的笔试题
2013/05/31 面试题
法律进学校实施方案
2014/03/15 职场文书
高中生操行评语
2014/04/25 职场文书
学生保证书范文
2014/04/28 职场文书
新教师培训方案
2014/06/08 职场文书
校庆标语集锦
2014/06/25 职场文书
离职证明标准格式
2014/09/15 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
大学生活感想
2015/08/10 职场文书
教师节感想
2015/08/11 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server