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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
简析Python的闭包和装饰器
Feb 26 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
python实现简单名片管理系统
Nov 30 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
python面向对象 反射原理解析
Aug 12 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
Python dict的常用方法示例代码
Jun 23 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
python中的None与NULL用法说明
May 25 Python
Python之matplotlib绘制饼图
Apr 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 auth_http类库进行身份效验
2009/03/19 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python 基础之字符串string详解及实例
2017/04/01 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
Python多线程多进程实例对比解析
2020/03/12 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
手术室护士自我鉴定
2013/10/14 职场文书
考博自荐信
2013/10/25 职场文书
网络维护中文求职信
2014/01/03 职场文书
安全生产承诺书
2014/03/26 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
三峡导游词
2015/01/31 职场文书
2015年护士节慰问信
2015/03/23 职场文书
拖欠货款起诉状
2015/05/20 职场文书
护士旷工检讨书
2015/08/15 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python