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 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
python中Apriori算法实现讲解
Dec 10 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
Python中免验证跳转到内容页的实例代码
Oct 23 Python
总结python 三种常见的内存泄漏场景
Nov 20 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 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读取纯真ip数据库使用示例
2014/01/26 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python中的闭包实例详解
2014/08/29 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
浅析python连接数据库的重要事项
2021/02/22 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
广告词串烧
2014/03/19 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
党员身份证明材料
2015/06/19 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS