python中连接并操作数据库
- 图示操作流程
一、使用的完整流程
# 1. 导入模块
from pymysql import connect
# 2. 创建和数据库服务器的连接,自行设置 服务器地址,端口,用户名,密码,数据库名, 通信使用字符和数据库字符集一致
conn = connect(host='', port=, user='', password='',database='', charset='')
# 3. 获取游标
cursor = conn.cursor()
# 4. 执行SQL语句
sql = "sql语句的内容,按照标准sql语句格式"
# 5. execute执行后返回值就是SQL语句在执行过程中影响的行数,可以打印出来显示语句是否执行成功
row_count = cursor.execute(sql)
print("SQL语句执行影响的行数%d" % row_count)
# 6. 提交数据,在pymysql中时默认不提交的,必须手动提交,否则无法写入数据库
conn.commit()
# # 回滚数据到什么都不做的状态 即撤销刚刚的修改
conn.rollback()
# 7. 关闭游标
cursor.close()
# 8. 关闭连接
conn.close()
二、关于SQL注入的问题
- 什么是SQL注入 产生原因
- 后台将用户提交的带有恶意的数据和SQL进行字符串方式的拼接,从而影响了SQL语句的语义,最终产生数据泄露的现象。
- 防止: sql语句的参数化
-
将SQL语句的所有数据参数存在一个列表中传递给execute函数的第二个参数
row_count = cursor(游标对象).execute(sql语句, params) # sql语句中所有参数,都通过储存在params内,然后向sql语句传参
# 那么params=[数值1,数值2....],此时sql语句中有多个%s即可