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学习手册中的python多态示例代码
Jan 21 Python
python求pi的方法
Oct 08 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
Django REST framework 视图和路由详解
Jul 19 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python中Django文件上传方法详解
Aug 05 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
手把手教你怎么用Python实现zip文件密码的破解
May 27 Python
python绘制云雨图raincloud plot
Aug 05 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
用PHP连接Oracle数据库
2006/10/09 PHP
php 归并排序 数组交集
2011/05/10 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
vue router动态路由设置参数可选问题
2019/08/21 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python环境变量设置方法
2016/08/28 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
中学生操行评语
2014/04/24 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
python的html标准库
2022/04/29 Python