python操作MySQL
发布时间:2020-12-20 10:54:25 所属栏目:Python 来源:网络整理
导读:一、python操作MySQL。 首先调用pymysql模块 import pymysql 连接 conn = pymysql.connect( host = ‘ 127.0.0.1 ‘ ,port = 3306 ,user = ‘ root ‘ ,password = ‘ 123456 ‘ ,database = ‘ day38 ‘ ,charset = ‘ utf8 ‘ # 编码千万不要加-,写成utf-
一、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‘,user = ‘123456‘,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帮你去做拼接 ‘‘‘ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |