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获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
Python遍历numpy数组的实例
Apr 04 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
python判断完全平方数的方法
Nov 13 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
python datetime中strptime用法详解
Aug 29 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
Python 爬虫的原理
Jul 30 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 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 output buffering缓存及程序缓存深入解析
2013/07/15 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
分享php多功能图片处理类
2016/05/15 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
多重CSS背景动画实现方法示例
2014/04/04 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
总裁岗位职责
2013/12/04 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
给校长的建议书500字
2014/05/15 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
vue封装数字翻牌器
2022/04/20 Vue.js
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js