day03-MYSQL与PYTHON的交互

一、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语句中的参数个数与用户输入的参数个数相比较,进而实现有效避免

发布了30 篇原创文章 · 获赞 0 · 访问量 286

猜你喜欢

转载自blog.csdn.net/qq_36334897/article/details/104898724
今日推荐