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 (1)
Oct 31 Python
python实现搜索本地文件信息写入文件的方法
Feb 22 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
详解python中executemany和序列的使用方法
Aug 12 Python
Python批量更改文件名的实现方法
Oct 29 Python
一篇文章快速了解Python的GIL
Jan 12 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
有关Python的22个编程技巧
Aug 29 Python
通过cmd进入python的实例操作
Jun 26 Python
Python学习笔记之While循环用法分析
Aug 14 Python
python游戏开发的五个案例分享
Mar 09 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 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 搜索框提示(自动完成)实例代码
2012/02/05 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
Flask之请求钩子的实现
2018/12/23 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Python新手如何理解循环加载模块
2020/05/29 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
千元咖啡店的创业计划书范文
2013/12/29 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
社区党员公开承诺书
2014/08/30 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
大学生创业事迹材料
2014/12/30 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL