最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pymysql之cur.fetchall() 和cur.fetchone()用法詳解

 更新時(shí)間:2020年05月15日 12:08:48   作者:挲love的成長(zhǎng)積累  
這篇文章主要介紹了pymysql之cur.fetchall() 和cur.fetchone()用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

我就廢話不多說(shuō)了,大家還是直接看代碼吧!

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語(yǔ)句,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ù)查出來(lái)然后再通過(guò)while 遍歷update 數(shù)據(jù),為了清楚測(cè)試時(shí)候的數(shù)據(jù)。

剛開(kāi)始的代碼是這樣的。

#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'#查詢語(yǔ)句
cursor.execute(sql001)
row=cursor.fetchone()#讀取查詢結(jié)果
print(row)
if row==None:
 print("沒(méi)有查到數(shù)據(jù)")
else:

 while row:
 print("sysno=%s" % (row[0]))
 cursor.execute("update xxxxx set Status=-1 where SysNo=%d", row[0]) # 執(zhí)行語(yǔ)句\
 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

自己查了不少文章,以前沒(méi)有對(duì)這塊有所涉及,因?yàn)楸救耸遣锁B(niǎo),用到哪就看到哪。也仔細(xì)看了fetchone() 、fetchall() 還有pymssql的對(duì)數(shù)據(jù)庫(kù)的基本炒作??戳撕镁迷谧詈箪`光一閃理解錯(cuò)誤在哪里了。

錯(cuò)誤出在while里的connect.commit()后直接又row=cursor.fetchone()而while里是(返回單個(gè)的元組,也就是一條記錄(row),如果沒(méi)有結(jié)果 則返回 None)因?yàn)槲疑弦粋€(gè)查詢是update語(yǔ)句,更新sql語(yǔ)句不會(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í)行語(yǔ)句
connect.commit()
print(row)
cursor.execute(sql001)
row=cursor.fetchone()

在獲取sql執(zhí)行獲取結(jié)果的 row=cursor.fetchone()我再去調(diào)用一次查詢?cè)俅潍@取想要的數(shù)據(jù)。

我覺(jué)得應(yīng)該有更好的辦法,就是再第一次獲取查詢結(jié)果把所需要的sysno都拿出來(lái),然后再while,這樣可以減少對(duì)數(shù)據(jù)庫(kù)的調(diào)用。

目前還沒(méi)有寫出來(lái)代碼,不知道思路對(duì)不對(duì),大家可以留言討論下。

以上這篇pymysql之cur.fetchall() 和cur.fetchone()用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

瑞丽市| 富源县| 九龙县| 全椒县| 北票市| 招远市| 顺昌县| 克什克腾旗| 宝应县| 安吉县| 苍山县| 平顶山市| 手机| 哈巴河县| 成武县| 博白县| 文山县| 油尖旺区| 秦皇岛市| 肥东县| 陕西省| 临夏市| 沂源县| 玛多县| 渭南市| 南乐县| 琼结县| 东港市| 上栗县| 达州市| 德令哈市| 新巴尔虎左旗| 桐庐县| 延津县| 友谊县| 灵璧县| 雷州市| 珲春市| 石渠县| 资源县| 丰台区|