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实现的阳历转阴历(农历)算法
Apr 25 Python
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
一文秒懂python读写csv xml json文件各种骚操作
Jul 04 Python
Python with用法:自动关闭文件进程
Jul 10 Python
python日期与时间戳的各种转换示例
Feb 12 Python
怎么快速自学python
Jun 22 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
详解KMP算法以及python如何实现
Sep 18 Python
Anaconda使用IDLE的实现示例
Sep 23 Python
django使用channels实现通信的示例
Oct 19 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 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
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
php查询操作实现投票功能
2016/05/09 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
js+css在交互上的应用
2010/07/18 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
input框中的name和id的区别
2016/11/16 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
python读写json文件的简单实现
2017/04/11 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python 同时运行多个程序的实例
2019/01/07 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
数据库笔试题
2013/05/09 面试题
银行会计财务工作个人的自我评价
2013/10/29 职场文书
20岁生日感言
2014/01/13 职场文书
学生生病请假条范文
2014/02/16 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
大学生个人求职信例文
2014/07/07 职场文书
总经理检讨书
2014/09/15 职场文书
普通党员整改措施
2014/10/24 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL