数据库——可视化工具Navicat、pymysql模块、sql注入问题
Navicat可视化工具
Navicat是数据库的一个可视化工具,可直接在百度搜索下载安装,它可以通过鼠标“点点点”的方式实现MySQL在cmd命令行中输入的SQL语句,操作易上手
pymysql模块
pymysql就是用来在python程序中如何操作mysql,它和mysql自带的那个客户端还有navicat是一样的,本质上就是一个套接字客户端,只不过这个套接字客户端是在python程序中用的。
如何使用pymysql模块?
例子说明
# 下载pymysql模块
# pip install pymysql
# 导入pymysql模块
import pymysql
# 1、建立连接
conn = pymysql.connect(
user='root',
password='123',
host='127.0.0.1',
port=3306,
database='day36',
charset='utf8',
# aotucommit=True
)
# 2、获取游标,游标中的参数cursor=pymysql.cursors.DictCursor是确保返回的结果是字典形式
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
username = input("username>>>:").strip()
password = input("password>>>:").strip()
sql = 'select * from user_info where name=%s and password=%s'
# 3、拼接SQL语句
cursor.execute(sql, (username, password))
res = cursor.fetchall()
if res:
print(res)
else:
print("用户名或密码错误!")
# 4、关闭连接,如果设置了aotucommit=True就需要conn.commit()进行确认提交
cursor.close()
sql注入问题
什么是sql注入问题?
sql注入问题就是利用特殊符号,巧妙的绕过真正的SQL校验,这样可以不通过验证就直接进入你的数据库,进行恶意攻击
如何解决sql注入问题?
关键性的数据不要自己动手去拼接,直接交由execute帮你拼接就OK了,就像上面的例子一样
注意
cursor.scroll( 移动个数,移动模式 ),移动模式有 relative(相对) 和absolute(绝对) 两种。
相对移动是从当前游标位置开始往后移动,absolute是从最开始的位置向后移动。
cursor.fetchone( ) 获取一个结果
cursor.fetchmany ( 数量 ) ,获取指定个数的结果,如果数量大于总的个数,不会报错。
cursor.fetchall( ) ,获取所有的结果