day15-pymysql模块的使用
1 # 实现:使用Python实现用户登录,如果用户存在则登录成功(假设该用户已在数据库中) 2 3 4 import pymysql 5 # user = input('请输入用户名:') 6 # 7 # pwd = input('请输入密码:') 8 9 10 11 # 1.连接 12 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123456', db='sxl', charset='utf8') 13 14 15 # 2.创建游标 16 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) 17 18 #注意%s需要加引号 有sql注入问题li' or 1=1 -- zdxv 或lijie' -- zdxv 19 # sql = "select * from userinfo where name='%s' and pwd='%s'" %(user, pwd) #注意修改内容及表 20 # print(sql) 21 # #解决sql注入问题 22 # sql="select * from userinfo where name=%s and pwd=%s" #!!!注意%s需要去掉引号,因为pymysql会自动为我们加上 23 # result=cursor.execute(sql,[user,pwd]) #pymysql模块自动帮我们解决sql注入的问题,只要我们按照pymysql的规矩来。 24 25 # 3.执行sql语句 26 # cursor.execute(sql) 27 # result=cursor.execute(sql) #执行sql语句,返回sql查询成功的记录数目 28 # print(result) 29 30 31 # #1.增加数据 32 # sql = "insert into userinfo(name,pwd) values (%s,%s)" 33 # # effect_row = cursor.execute(sql,(123,123)) 34 # #同时插入多条数据 35 # # effect_row = cursor.executemany(sql,[('李四','110'),('王五','119')]) 36 # # print(effect_row) 37 # # 2.改 38 # sql = "update userinfo set name = %s where id = 4" 39 # effect_row = cursor.execute(sql,'111') 40 # print(effect_row) 41 # # 3.删 42 # sql = "delete from userinfo where id >13" 43 # effect_row = cursor.execute(sql) 44 # print(effect_row) 45 # 4.查 46 sql = 'select * from userinfo' 47 num = cursor.execute(sql) #11 48 # # 4.1fetchone():获取下一行数据,第一次为首行; 49 # #查询第一行的数据 50 # row = cursor.fetchone() 51 # print(row) # (1, 'lijie', '123') 52 # # 查询第二行数据 53 # row = cursor.fetchone() 54 # print(row) # (3, 'zz', '123') 55 # 4.2fetchall():获取所有的数据 56 # rows = cursor.fetchall() 57 # print(rows) #((1, 'lijie', '123'), (3, 'zz', '123'), (5, '王五', '119'), (6, '123', '123')) 58 #注1:在实例化的时候,将属性cursor设置为pymysql.cursors.DictCursor,每一行的数据都会生成一个字典 59 #[{'id': 1, 'name': 'lijie', 'pwd': '123'}, {'id': 3, 'name': 'zz', 'pwd': '123'}, {'id': 5, 'name': '王五', 'pwd': '119'}, {'id': 6, 'name': '123', 'pwd': '123'}] 60 # #注2:在fetchone示例中,在获取行数据的时候,可以理解开始的时候,有一个行指针指着第一行的上方,获取一行,它就向下移动一行,所以当行指针到最后一行的时候,就不能再获取到行的内容,所以我们可以使用如下方法来移动行指针: 61 # cursor.scroll(1,mode='relative') # 相对当前位置移动 62 # cursor.scroll(3,mode='absolute') # 相对绝对位置移动 以第一行为参考 63 # # 第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动 64 row = cursor.fetchone() 65 print(row) # {'id': 1, 'name': 'lijie', 'pwd': '123'} 原始数据是135678 66 cursor.scroll(1,mode='relative') 67 row = cursor.fetchone() 68 print(row) # {'id': 5, 'name': '王五', 'pwd': '119'} 69 cursor.scroll(0,mode='absolute') #设置之后,光标相对于首行没有任何变化,所以打印的结果为第一行数据 70 row = cursor.fetchone() 71 print(row) # {'id': 1, 'name': 'lijie', 'pwd': '123'} 72 cursor.scroll(1,mode='absolute') 73 row = cursor.fetchone() 74 print(row) # {'id': 3, 'name': 'zz', 'pwd': '123'} 75 cursor.scroll(-1,mode='relative') #设置之后,光标相对于当前位置往前移动了一行 76 row = cursor.fetchone() 77 print(row) # {'id': 3, 'name': 'zz', 'pwd': '123'} 78 #4.3 fetchmany(4):获取4行数据 79 # row = cursor.fetchmany(2) 80 # print(row) # [{'id': 1, 'name': 'lijie', 'pwd': '123'}, {'id': 3, 'name': 'zz', 'pwd': '123'}] 81 82 83 84 #在数据库里增、删、改的时候,一定记得commit 85 conn.commit() 86 87 88 89 90 91 # 关闭连接,游标和连接都要关闭 92 cursor.close() 93 conn.close() 94 95 # if result: 96 # print('登陆成功') 97 # else: 98 # print('登录失败')
转载于:https://www.cnblogs.com/lijie123/p/9392899.html
day15-pymysql模块的使用相关推荐
- MySQL之pymysql模块
PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. Django中也可以使用PyMySQL连接MySQL数 ...
- mysql七个模块_mysql(pymysql模块的使用,视图,触发器)
本节重点: pymysql的下载和使用 execute()之sql注入 增.删.改:conn.commit() 查:fetchone.fetchmany.fetchall 一.pymysql的下载和使 ...
- Mysql: pymysql 模块
import pymysql #导入pymysql模块client=pymysql.connect( #与服务端建立连接 host='127.0.0.1', port=3306, user='root ...
- 5.15 pymysql 模块
pymysql 模块 安装 pip3 install pymysql 链接,执行sql,关闭(游标) import pymysql user= input('用户名:>>').strip( ...
- pymysql模块操作数据库及连接报错解决方法
pymysql模块操作数据库及连接报错解决方法 参考文章: (1)pymysql模块操作数据库及连接报错解决方法 (2)https://www.cnblogs.com/zgngg/p/10607859 ...
- Navicat工具、pymysql模块
Navicat工具.pymysql模块 阅读目录 一 IDE工具介绍 二 pymysql模块 一 IDE工具介绍(Navicat) 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用I ...
- 利用PyMySQL模块操作数据库
连接到数据库 import pymysql # 创建链接得到一个链接对象 conn = pymysql.Connect(host="127.0.0.1", # 数据库服务器主机地址 ...
- 权限管理,pymysql模块
权限管理 权限管理重点 MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL ...
- MySQL -Naivacat工具与pymysql模块
Navicat 在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库. 官网下载:https ...
- mysql用户管理+pymysql模块
mysql 用户管理 Mysql 是一个tcp 服务器 用于接收用户端发送的指令,操作服务器上的文件数据 在mysql自带的mysql数据库中有4个表用于用户管理的 分别是: 优先级从高到低 user ...
最新文章
- Apache ‘mod_pagespeed’模块跨站脚本漏洞
- 目标检测基本概念理解之IoU(交并比)以及Python代码实现
- VTK:彩色注释立方体用法实战
- onenote复制出来是图片_你真的了解 OneNote 吗?
- 厦门理工C语言实验报告8,厦门理工c语言数据结构实验
- Kafka核心源码解析 - KafkaApis源码解析
- 【hortonworks/registries】SchemaVersionLifecycleManager.createSchemaVersion null
- 完全关闭App的两种做法
- ubuntu mysql 编译_Ubuntu下mysql编译安装
- deepfacelab安卓版_DeepFaceLab2020版本下载
- 百度自动php推送蜘蛛怎么不来访问,使用代码向百度蜘蛛主动推送链接
- 淘宝联盟官方APi在小程序云函数中的使用教程(附案例)
- 深入理解操作系统实验——bomb lab(secret_phase)
- FFT(快速傅里叶变换)摘要
- java for无限循环
- lp_solve 线性规划求解包的使用
- 2022年美国大学生数学建模(MCM/ICM)C题:量化交易策略
- oracle时间平均,Oracle SQL的平均时间
- itextpdf 5.5.6版本生成pdf文件 字体设置三种方式
- 中华象思维的算法特征与逻辑基础
热门文章
- MySQL存储结构的使用
- 2020 我的C++学习之路 C++PrimerPlus第五章课后习题
- c语音 udp最大长度_c语言udp自定义头文件 网络通信程序
- nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...
- 怎么通过华为三层交换机实现VLAN间通信?
- 历经 7 年双 11 实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?
- 分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
- 空间地理加权回归stata_xy妙妙屋丨地理加权回归和空间自相关
- python import requests报错_import requests 出错,搜了很多,没解决,求教.
- matlab中线性变压器,用MATLAB优化计算差动变压器的线性范围