一、python操作MySQL。
首先调用pymysql模块
import pymysql
连接
conn = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root', password = '123456', database = 'day38', charset = 'utf8' # 编码千万不要加-,写成utf-8会直接报错 )
产生一个游标对象
cursor = conn.cursor(pymysql.cursors.DictCursor) # 产生一个游标对象 # DictCursor 以字典的形式反馈查询出来的数据,键是表的字段,值是表的字段对应的信息
cursor.execute 执行传入sql语句
sql = 'select * from teacher' cursor.execute(sql) # 执行传入的sql语句 # print(res) # res是执行语句返回的数据条数
cursor.fetchone # 只获取一条数据
cursor.fetchall # 获取所有数据,返回结果是一个列表
cursor.scroll(x,'absolute') # 控制光标移动,相对起始位置往后移动
cursor.scroll(x,'relative') # 相对当前位置,往后移动
print(cursor.fetchone()) # 只获取一条数据 cursor.scroll(1,'absolute') # 控制光标移动,absolute相对于起始位置,往后移动几位 # cursor.scroll(2,'relative') # relative 相对于当前位置,往后移动几位 print(cursor.fetchall()) # 获取所有的数据,返回的结果是一个列表
二、 sql注入问题
就是利用注释等具有特殊意义的符号来完成一些骚操作
mport pymysql conn = pymysql.connect( host = '127.0.0.1', port = 3306, user = '123456', database = 'day38', charset = 'utf8' , autocommit = True # 这个参数配置完成后,增删改操作都不需要手动加conn.commit 了 ) cursor = conn.cursor(pymysql.cursors.DictCursor) # sql = 'insert into user(name,password) values("jerry","666")' # sql = 'update user set name = "jason" where id = 1' # sql = 'delete from user where id = 6' # cursor.execute(sql) ''' 增删改操作,都必须加一句 conn.commit() 操作 ''' username = input('username>>>:') password = input('password>>>:') sql = 'select * from user where name =%s and password = %s' res = cursor.execute(sql,(username,password)) # 能够帮你自动过滤特殊字符号,避免sql注入问题 # excute 能够自动识别sql语句中%s 帮你做替换 if res: print(cursor.fetchall()) else: print('用户名或密码错误') ''' sql注入 就是利用注释等具有特殊意义的符号来完成一些骚操作 后续写sql语句,不要手动拼接关键性的数据 而是让excute帮你去做拼接 '''