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实现Linux下守护进程的编写方法
Aug 22 Python
Python映射拆分操作符用法实例
May 19 Python
python实现按任意键继续执行程序
Dec 30 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
一个Python最简单的接口自动化框架
Jan 02 Python
python3的输入方式及多组输入方法
Oct 17 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
python实现AdaBoost算法的示例
Oct 03 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
php include的妙用,实现路径加密
2008/07/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Python中常见的数据类型小结
2015/08/29 Python
python如何实现word批量转HTML
2020/09/30 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
工厂实习感言
2014/01/14 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
对标管理实施方案
2014/03/12 职场文书
导师评语大全
2014/04/26 职场文书
企业贷款委托书格式
2014/09/12 职场文书
老兵退伍标语
2014/10/07 职场文书
分居协议书范本
2014/11/03 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
Python pandas求方差和标准差的方法实例
2021/08/04 Python
带你了解Java中的ForkJoin
2022/04/28 Java/Android