pymysql之cur.fetchall() 和cur.fetchone()用法詳解
我就廢話不多說了,大家還是直接看代碼吧!
import pymysql,hashlib
結(jié)果:?jiǎn)螚l結(jié)果 {'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) # 游標(biāo)
cur.execute(sql) # 執(zhí)行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, 默認(rèn)為true
=================================
md5加鹽2
def md5(s,salt=''):
new_s = str(s) + salt
m = hashlib.md5(new_s.encode())
return m.hexdigest()```
補(bǔ)充知識(shí):python pymssql使用時(shí),使用fetchone獲取的值怎么在while里操作多條數(shù)據(jù)
項(xiàng)目描述:
想把status狀態(tài)為1的數(shù)據(jù)查出來然后再通過while 遍歷update 數(shù)據(jù),為了清楚測(cè)試時(shí)候的數(shù)據(jù)。
剛開始的代碼是這樣的。
#coding:utf-8
import pymssql
def connect():
connect=pymssql.connect((‘x.x.x.x'),‘x',‘x',‘x')
cursor = connect.cursor() # 創(chuàng)建游標(biāo)
sql001='select *from xxxxx where xxxxx=273and Status=1 order by sysno desc'#查詢語句
cursor.execute(sql001)
row=cursor.fetchone()#讀取查詢結(jié)果
print(row)
if row==None:
print("沒有查到數(shù)據(jù)")
else:
while row:
print("sysno=%s" % (row[0]))
cursor.execute("update xxxxx set Status=-1 where SysNo=%d", row[0]) # 執(zhí)行語句\
connect.commit()
print(row)
#cursor.execute(sql001)
row=cursor.fetchone()
#print(row)
connect()
報(bào)錯(cuò)信息:
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
自己查了不少文章,以前沒有對(duì)這塊有所涉及,因?yàn)楸救耸遣锁B,用到哪就看到哪。也仔細(xì)看了fetchone() 、fetchall() 還有pymssql的對(duì)數(shù)據(jù)庫的基本炒作??戳撕镁迷谧詈箪`光一閃理解錯(cuò)誤在哪里了。
錯(cuò)誤出在while里的connect.commit()后直接又row=cursor.fetchone()而while里是(返回單個(gè)的元組,也就是一條記錄(row),如果沒有結(jié)果 則返回 None)因?yàn)槲疑弦粋€(gè)查詢是update語句,更新sql語句不會(huì)返回resultset,所以會(huì)報(bào)錯(cuò)。
然后我就這樣改了一下,:
while row: print(“sysno=%s” % (row[0])) cursor.execute(“update xxxxx set Status=-1 where SysNo=%d”, row[0]) # 執(zhí)行語句 connect.commit() print(row) cursor.execute(sql001) row=cursor.fetchone()
在獲取sql執(zhí)行獲取結(jié)果的 row=cursor.fetchone()我再去調(diào)用一次查詢?cè)俅潍@取想要的數(shù)據(jù)。
我覺得應(yīng)該有更好的辦法,就是再第一次獲取查詢結(jié)果把所需要的sysno都拿出來,然后再while,這樣可以減少對(duì)數(shù)據(jù)庫的調(diào)用。
目前還沒有寫出來代碼,不知道思路對(duì)不對(duì),大家可以留言討論下。
以上這篇pymysql之cur.fetchall() 和cur.fetchone()用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python中操作mysql的pymysql模塊詳解
- Python中模塊pymysql查詢結(jié)果后如何獲取字段列表
- Python MySQL數(shù)據(jù)庫連接池組件pymysqlpool詳解
- 在python中使用pymysql往mysql數(shù)據(jù)庫中插入(insert)數(shù)據(jù)實(shí)例
- Python使用pymysql從MySQL數(shù)據(jù)庫中讀出數(shù)據(jù)的方法
- python使用pymysql實(shí)現(xiàn)操作mysql
- pyMySQL SQL語句傳參問題,單個(gè)參數(shù)或多個(gè)參數(shù)說明
- 詳解使用pymysql在python中對(duì)mysql的增刪改查操作(綜合)
- Python中pymysql 模塊的使用詳解
- 封裝一個(gè)python的pymysql操作類
相關(guān)文章
python中Selenium+Webdriver實(shí)現(xiàn)自動(dòng)化登錄
本文主要介紹了python中Selenium+Webdriver實(shí)現(xiàn)自動(dòng)化登錄,包括測(cè)試環(huán)境的搭建、代碼編寫、以及注意事項(xiàng)等,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
python 如何用terminal輸入?yún)?shù)
這篇文章主要介紹了python 如何用terminal輸入?yún)?shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Python中zip()函數(shù)用法實(shí)例教程
這篇文章主要介紹了Python中zip()函數(shù)用法實(shí)例教程,對(duì)Python初學(xué)者有一定的借鑒價(jià)值,需要的朋友可以參考下2014-07-07
python GUI庫圖形界面開發(fā)之PyQt5表單布局控件QFormLayout詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5布局控件QFormLayout詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03
python進(jìn)行兩個(gè)表格對(duì)比的方法
今天小編就為大家分享一篇python進(jìn)行兩個(gè)表格對(duì)比的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python Pytorch深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)
今天小編就為大家分享一篇關(guān)于Pytorch神經(jīng)網(wǎng)絡(luò)的文章,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-10-10
《Python學(xué)習(xí)手冊(cè)》學(xué)習(xí)總結(jié)
本篇文章是讀者朋友在學(xué)習(xí)了《Python學(xué)習(xí)手冊(cè)》這本書以后,總結(jié)出的學(xué)習(xí)心得,值得大家參考學(xué)習(xí)。2018-01-01

