pymysql模块初见
时间:2019-08-22
本文章向大家介绍pymysql模块初见,主要包括pymysql模块初见使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一.pymysql的基本使用方法
import pymysql db = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root', password = '123', database = 'day36', charset = 'utf8', # 写成了utf-8会直接报错 autocommit = True # 这个参数配置完成后 增删改操作都不需要在手动加conn.commit了 ) # cursor = db.cursor() # 产生一个游标对象 以元组的形式进行返回 cursor = db.cursor(pymysql.cursors.DictCursor) # 产生一个游标对象 以字典的形式返回查询出来的数据 键是表的字段 值是表的字段对应的信息 sql = 'select * from emp' res = cursor.execute(sql) # 使用 execute() 方法执行 SQL,返回值是查询到的数据条数 print(res) if res: # print(cursor.fetchone()) # 获取一条数据,返回值字典 # cursor.scroll(0,'absolute') #控制光标移动,相对于起始位置,往后移动多少 # cursor.scroll(1,'relative') # 基于当前光标的位置,正数向后移动,负数向前移动 # print(cursor.fetchall()) #获取所有数据,返回值列表套字典 print(cursor.fetchmany()) # 不加参数返回一条,加了返回指定条数 else: print('error') db.close()
ps:想要获取增删改的权限,需要在execute之后添加conn.commit提交
二.sql注入问题
import pymysql db = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root', password = '123', database = 'day36', charset = 'utf8', # 写成了utf-8会直接报错 autocommit = True # 这个参数配置完成后 增删改操作都不需要在手动加conn.commit了 ) # cursor = db.cursor() # 产生一个游标对象 以元组的形式进行返回 cursor = db.cursor(pymysql.cursors.DictCursor) # 产生一个游标对象 以字典的形式返回查询出来的数据 键是表的字段 值是表的字段对应的信息 name = input(">>:").strip() sex= input(">>:").strip() sql = 'select * from emp where name="%s"and sex="%s"' %(name,sex) print(sql) res = cursor.execute(sql) # 使用 execute() 方法执行 SQL,返回值是查询到的数据条数 print(cursor.fetchall()) # sql注入 就是利用注释等具有特殊意义的符号 来完成一些骚操作 # # 后续写sql语句 不要手动拼接关键性的数据 # res = cursor.execute(sql,(name,sex)) # 而是让excute帮你去做拼接
原文地址:https://www.cnblogs.com/Cpsyche/p/11397422.html
- Spring Cloud Sleuth Zipkin 展示追踪数据
- Spring cloud Zuul Filter 使用小经验
- Spring Cloud Eureka REST 接口
- Spring Cloud Eureka 控制台快速查看Swagger API文档
- Spring Cloud Feign 启动UnsatisfiedDependencyException
- Spring Cloud Zuul结合Smconf配置中心动态进行IP黑名单限制
- 高性能NIO框架Netty入门篇
- Spring Boot Web 静态文件缓存处理
- hbuilder 开发APP填坑经验
- hbuilder APP 定位提示苹果审核不通过
- hbuilder 开发5+ APP采坑记录
- Spring Cloud如何提供API给客户端
- 5分钟学会Spring Boot自定义属性和自动配置
- 创建一个Spring Security OAuth认证服务
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS 6.x 搭建:Headless Chrome + ChromeDriver + Selenium的爬虫环境系统
- 聊聊dubbo-go的registryAwareCluster
- 同样是空值,null和undefined有什么异同?
- 强大到没朋友的mysql-shell及插件
- android JavaPoet记录
- JavaScript里的分号,你加还是不加?
- 技术干货 | Docker 容器逃逸案例汇集
- 一张千万级别数据的表想做分页,如何优化?
- 一文学会爬虫技巧
- 为什么机器学习应用交易那么难(中)
- 消息队列的消费幂等性如何保证
- js中数组Array.reduce方法介绍及使用场景
- 推荐一套基于go开发的文档管理系统
- 如何通过容器搭建稳定可靠的私有网盘(NextCloud)
- Flutter实现倒计时功能