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的Tornado框架中session支持的实现代码
Aug 21 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
python读取oracle函数返回值
Jul 18 Python
30秒轻松实现TensorFlow物体检测
Mar 14 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
python 解压pkl文件的方法
Oct 25 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Python编程中flask的简介与简单使用
Dec 28 Python
Python中super函数用法实例分析
Mar 18 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
opencv检测动态物体的实现
Jul 21 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加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
Python Property属性的2种用法
2015/06/21 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
幸福家庭事迹材料
2014/02/03 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS