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