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分析git log日志示例
Feb 27 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
python判断设备是否联网的方法
Jun 29 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
超简单的Python HTTP服务
Jul 22 Python
python web框架 django wsgi原理解析
Aug 20 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
教你怎么用Python生成九宫格照片
May 20 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中实现图片的锐化
2006/10/09 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
详解python基础之while循环及if判断
2017/08/24 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
社区食品安全实施方案
2014/03/28 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
小学总务工作总结
2015/08/13 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android