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输出当前目录下index.html文件路径的方法
Apr 28 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
对python中list的五种查找方法说明
Jul 13 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 Python
教你用python控制安卓手机
May 13 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
python三元运算符实现方法
2013/12/17 Python
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
会计岗位职责
2013/11/08 职场文书
护理学专业推荐信
2013/12/03 职场文书
教师考察材料范文
2014/06/03 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
新闻传播专业求职信
2014/07/22 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
大学军训的体会
2014/11/08 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
详解Python中__new__方法的作用
2022/03/31 Python