电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python pymsql模塊的使用

瀏覽:8日期:2022-07-12 09:12:29

基本使用

首先要下載 pymysql

pip install pymsql

以下是 pymysql 的基本使用

import pymysql# 鏈接,C/S架構(gòu),TCP鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結(jié)果,字典顯示 # password = 'your password', ) # 游標(biāo)cursor = conn.cursor()# 執(zhí)行sqlsql = 'show tables'res = cursor.execute(sql) # 提交執(zhí)行,返回sql影響成功的行數(shù)print(res) # 2 代表該數(shù)據(jù)庫(kù)下有2個(gè)表print(cursor.fetchall()) # [{’Tables_in_db1’: ’t1’}, {’Tables_in_db1’: ’t2’}]cursor.close() # 關(guān)閉游標(biāo)conn.close()

游標(biāo)概念

可以看到在上面的示例中有一個(gè)游標(biāo)的概念,其實(shí)這個(gè)也非常簡(jiǎn)單,就等同于光標(biāo)的上下移動(dòng),每移動(dòng)一次代表一條記錄。

Python pymsql模塊的使用

在 pymsql 中,對(duì)于 select 等操作返回的結(jié)果都可以通過游標(biāo)的移動(dòng)配合相應(yīng)方法函數(shù)來進(jìn)行讀取。

sql注入

如果你的某些 sql 語(yǔ)句要進(jìn)行字符串拼接,那么一定要使用 pymysql 提供的 execute() 方法進(jìn)行拼接,不要去用 python 中的 % 或 format() 方法,這可能導(dǎo)致出現(xiàn) sql 注入問題帶來不安全的隱患。

注意:使用 execute() 時(shí),不可傳入表名,數(shù)據(jù)庫(kù)名。否則會(huì)拋出語(yǔ)法錯(cuò)誤,這是因?yàn)樵谄唇訒r(shí)會(huì)自動(dòng)添加上``號(hào)

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結(jié)果,字典顯示 # password = 'your password', ) # 游標(biāo)cursor=conn.cursor()# 執(zhí)行sqlsql = 'select * from t1 where id=%s'res = cursor.execute(sql,('1',)) # 提交執(zhí)行,返回sql影響成功的行數(shù) 這里拼接能預(yù)防sql注入問題print(res) # 1 查出一條記錄print(cursor.fetchall()) # 拿到所有記錄的結(jié)果cursor.close() # 關(guān)閉游標(biāo)conn.close()

事務(wù)提交

在執(zhí)行 UPDATE/INSERT/DELETE 之類的操作,必須使用 conn.commit() 進(jìn)行事務(wù)提交后方可生效。

或者你可以在實(shí)例化 conn 對(duì)象時(shí)為他指定 auto_commit 參數(shù)為 true 即可自動(dòng)提交事務(wù)。

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結(jié)果,字典顯示 autocommit = True, # 自動(dòng)提交 # password = 'your password', ) # 游標(biāo)cursor=conn.cursor()# 執(zhí)行sqlsql = 'insert into t1(name) values(%s)'res = cursor.execute(sql,('新記錄',)) # 提交執(zhí)行,返回sql影響成功的行數(shù) 這里拼接能預(yù)防sql注入問題print(res) # 1 成功插入一條記錄print(cursor.lastrowid) #在插入語(yǔ)句后查看,查看最后一條記錄的行號(hào)print(cursor.fetchall())# conn.commit() # 手動(dòng)提交cursor.close() # 關(guān)閉游標(biāo)conn.close()

提交多條

使用 cursor.executemany() 方法可一次性提交多條 sql 操作。

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結(jié)果,字典顯示 autocommit = True, # 自動(dòng)提交 # password = 'your password', ) # 游標(biāo)cursor=conn.cursor()# 執(zhí)行sqlsql = 'insert into t1(name) values(%s)' # 同一條命令,執(zhí)行3次res = cursor.executemany(sql,[('新記錄1'),('新紀(jì)錄2'),('新紀(jì)錄3')]) # 提交執(zhí)行,返回sql影響成功的行數(shù) 這里拼接能預(yù)防sql注入問題print(res) # 3 成功插入三條記錄print(cursor.lastrowid) #在插入語(yǔ)句后查看,查看最后一條記錄的行號(hào)print(cursor.fetchall())cursor.close() # 關(guān)閉游標(biāo)conn.close()

游標(biāo)相關(guān)

獲取到一條記錄后,我們可以控制游標(biāo)移動(dòng)。

也可以控制查看游標(biāo)后的多少條記錄

游標(biāo)每移動(dòng)一次代表一條記錄

命令解析 描述 cursor.scroll(3,mode=’absolute’) 游標(biāo)以絕對(duì)位置向后移動(dòng)3條記錄 cursor.scroll(3,mode=’relative’) 游標(biāo)以當(dāng)前位置向后移動(dòng)3條記錄 注意:游標(biāo)移動(dòng)的條數(shù)即為記錄的條數(shù),如果移動(dòng)值為負(fù)N就代表上N條記錄

如果我們想獲取記錄,可使用以下三個(gè)方法

命令解析 描述 cursor.fetchone() 獲取第一條記錄,游標(biāo)向下移動(dòng)一行 cursor.fetchmany(2) 獲取接下來的兩條記錄,游標(biāo)向下移動(dòng)兩行 cursor.fetchall() 獲取全部記錄,游標(biāo)移動(dòng)到末尾,返回的是一個(gè)列表

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結(jié)果,字典顯示 autocommit = True, # 自動(dòng)提交 # password = 'your password', ) # 游標(biāo)cursor=conn.cursor()# 執(zhí)行sqlsql = 'select * from t1' # t1表中4條記錄cursor.execute(sql)print(cursor.fetchone()) 游標(biāo)移動(dòng)到2的位置cursor.scroll(2,mode=’relative’) 向下移動(dòng)2,當(dāng)前游標(biāo)為4print(cursor.fetchone())cursor.close() # 關(guān)閉游標(biāo)conn.close()'''{’id’: 1, ’name’: ’記錄1’}{’id’: 4, ’name’: ’記錄4’}'''

插入行號(hào)

如果執(zhí)行的是 INSERT 操作,可以在插入后查看最后插入的 ID 行號(hào)

import pymysql# 鏈接conn = pymysql.connect( host='localhost', database='db1', charset='utf8mb4', user='root', cursorclass=pymysql.cursors.DictCursor, # 記錄結(jié)果,字典顯示 autocommit = True, # 自動(dòng)提交 # password = 'your password', ) # 游標(biāo)cursor=conn.cursor()# 執(zhí)行sqlsql = 'insert into t1(name) values(%s)' # 同一條命令,執(zhí)行3次res = cursor.executemany(sql,[('新記錄1'),('新紀(jì)錄2'),('新紀(jì)錄3')]) # 提交執(zhí)行,返回sql影響成功的行數(shù) 這里拼接能預(yù)防sql注入問題print(res) # 3 成功插入三條記錄print(cursor.lastrowid) #在插入語(yǔ)句后查看,查看最后一條記錄的行號(hào)print(cursor.fetchall())# conn.commit() # 手動(dòng)提交cursor.close() # 關(guān)閉游標(biāo)conn.close()

以上就是Python pymsql模塊的使用的詳細(xì)內(nèi)容,更多關(guān)于Python pymsql的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 杭州双螺杆挤出机-百科| 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 捆扎机_气动捆扎机_钢带捆扎机-沈阳海鹞气动钢带捆扎机公司 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 骁龙云呼电销防封号系统-axb电销平台-外呼稳定『免费试用』 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 液晶拼接屏厂家_拼接屏品牌_拼接屏价格_监控大屏—北京维康 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 广西教师资格网-广西教师资格证考试网 | 双吸泵,双吸泵厂家,OS双吸泵-山东博二泵业有限公司 | 聚合甘油__盐城市飞龙油脂有限公司 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 |