原文:https://www.cnblogs.com/wt11/p/6141225.html

https://shockerli.net/post/python3-pymysql/----Python 3 进阶 —— 使用 PyMySQL 操作 MySQL

前言

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。

本文测试python版本:2.7.11。mysql版本:5.6.24

一、安装

二、使用操作

1、执行SQL

注意:存在中文的时候,连接需要添加charset='utf8',否则中文显示乱码。

2、获取查询数据

3、获取新创建数据自增ID

可以获取到最新自增的ID,也就是最后插入的一条数据ID

4、移动游标

操作都是靠游标,那对游标的控制也是必须的

5、fetch数据类型

关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即:

6、调用存储过程

a、调用无参存储过程

b、调用有参存储过程

三、关于pymysql防注入

1、字符串拼接查询,造成注入

正常查询语句:

构造注入语句:

2、避免注入,使用pymysql提供的参数化语句

正常参数化查询

构造注入,参数化查询注入失败。

结论:excute执行SQL语句的时候,必须使用参数化的方式,否则必然产生SQL注入漏洞。

3、使用存mysql储过程动态执行SQL防注入

使用MYSQL存储过程自动提供防注入,动态传入SQL到存储过程执行语句。

pymsql中调用

四、使用with简化连接过程

每次都连接关闭很麻烦,使用上下文管理,简化连接过程

总结

以上就是关于Python中pymysql模块的全部内容,希望对大家学习或使用python能有一定的帮助,如果有疑问大家可以留言交流。

python中的pymysql_(转)Python中操作mysql的pymysql模块详解相关推荐

  1. python propresql mysql_Python中操作mysql的pymysql模块详解

    PyMySQL是一个Python编写的MySQL驱动程序,让我们可以用Python语言操作MySQL数据库. 首先,使用pip安装PyMySQL. pip install PyMySQL 使用PyMy ...

  2. Python中操作mysql的pymysql模块详解

    前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持3.x版本. 本文测试python版本:2.7.11. ...

  3. python的mysql模块_Python中操作mysql的pymysql模块详解

    前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持3.x版本. 本文测试python版本:2.7.11. ...

  4. python多线程读取数据库数据_python多线程操作MySQL数据库pymysql

    python多线程操作MySQL数据库pymysql 项目中使用多线程操作数据库提示错误:pymysql.err.InterfaceError: (0, "),原因是pymysql的exec ...

  5. Python编程手册系列 - 日历、日期、时间相关内建模块详解

    Python - 日历calendar.日期datetime.时间time模块详解 博主精心制作了该系列彩色高亮的动态链接模块手册,预期该手册比阅读纸质书籍有更友好.更便捷.更让人舒适的使用体验.希望 ...

  6. python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...

    本文实例讲述了python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的 ...

  7. cmd mysql_CMD命令操作MySql数据库的方法详解

    第一:mysql服务的启动和停止 net stop mysql net start mysql 第二:登陆 mysql –u用户名 [–h主机名或者IP地址] –p密码 说明:用户名是你登录的用户,主 ...

  8. python cx_oracle模块详解_cx_Oracle模块详解

    1.安装cx_Oracle模块 1-1.环境准备: 1-1-1.oracle client最小安装 instantclient-sqlplus-linux.x64-11.2.0.4.0 instant ...

  9. python中common在哪个模块导入_python的常用模块之collections模块详解

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

最新文章

  1. 单个晶体管形成的奇怪振荡电路
  2. VTK:可视化之PointDataSubdivision
  3. okhttp连接池_OkHttp配置HTTPS访问+服务器部署
  4. 使用Fiori elements技术开发的ui5应用,方便大家参考
  5. Gradle接口:Gradle构建元数据
  6. instagram架构_如何为亚马逊,Instagram,Zalando和天猫生成产品图像
  7. 什么是徽标LOGO模板?
  8. Java定时器quartz停止
  9. VIM 编辑器配置与使用
  10. java中lastmodified_Java File lastModified()用法及代码示例
  11. MachineLearning in Action (机器学习实战)源码和数据集下载地址
  12. python节日贺卡绘制
  13. Nginx 搭建DASH服务器
  14. QQ邮箱 接受 天气查询 阿里云自动运行学习记录
  15. 配置Chrome浏览器burpsuite HTTPS抓包
  16. oracle空间数据库实验报告,Oracle数据库实验报告六 PL/SQL基础
  17. Python 实例 - Day3 - Spirograph 万花尺(完结)
  18. 强烈推荐的音视频资料(文中有福利哈!)
  19. uni-app 横屏滚动抽奖
  20. redeclared with a different type

热门文章

  1. android webservices 返回多行多列数据,NoahWeb实现表格多行多列
  2. java 复写_课程5.4之函数的复写(override)
  3. mvc:annotation-driven 注解的作用
  4. C语言2020年作业,2020年c语言上机报告范文【四篇】
  5. php判断目录是否有写的权限,php中判断文件空目录是否有读写权限
  6. azure webjob java_使用 WebJobs 运行后台任务 | Azure Docs
  7. mysql服务器程序_MySQL服务器
  8. php7 ast,PHP7 的抽象语法树(AST)带来的变化
  9. mongoose换成mysql_如何将MongoDB数据库的数据迁移到MySQL数据库中
  10. Mybatis-puls打印sql语句