一、pymysql介绍
python中与mysql交互的一个库
windows安装: pip Install pymysql
二、pymysql库的基本使用
1.创建connec对象
用于建立与数据库的连接
con= pymysql.connect(host,port,database,user,password,charset)
- 参数host:连接的mysql主机,如果本机是’localhost’
- 参数port:连接的mysql主机的端口,默认是3306
- 参数database:数据库的名称
- 参数user:连接的用户名
- 参数password:连接的密码
- 参数charset:通信采用的编码方式,推荐使用utf8
2.创建cursor对象
用于执行sql语句(相当于创建了一个客户端)
cur = con.cursor()
3.执行sql语句
cur.execute(""" sql语句 “”")
返回受影响的行数
4.查看执行后数据表中的数据
- 一次一行方式查看
cur.fetchone()
注:每运行一次,返回一条新记录,默认从第一条记录返回
- 一次多行方式查看
cur. fetchmany(num) #num为指定的行数
注:返回的数据类型为元组中嵌套元组型,元组中的每一个元组是一条记录
- 一次性查看所有数据
cur. fetchall()
注:返回的数据类型也是元组中嵌套元组型,元组中的每一个元组是一条记录
5.提交操作
con.commit()
注:如果sql语句为select查询语句,则不需要提交语句,默认执行提交语句;如果是除查询之外的sql语句,则必须要执行提交语句才能奏效
6.关闭连接操作
cur.close() #相当于关闭客户端
con.close() #相当于关闭连接
注:cur对象必须先关闭,即con对象不能在cur对象关闭前关闭
三、SQL注入
介绍:有些网客会利用sql语句的漏洞,查询并窃取数据库中的所有数据
举例:
select * from 表名 where 条件 or ‘1=1’ or ‘1’;
此sql语句可实现对数据库所有数据的读取操作
- 有效避免sql注入
cur.execute(sql语句,[用户输入])
说明:利用sql语句的参数化,将sql语句中的参数个数与用户输入的参数个数相比较,进而实现有效避免