MySQL >>> Python代码

Python 代码操作 MySQL

# 先安装 pymysql 模块
import
pymysql
conn=pymysql.connect( # 链接 host='localhost',
 port=3306, user
='root', password='123', database='egon', charset='utf8') # 此处不是utf-8,不加横杠
# 方式一:
cursor=conn.cursor() # 生成游标,且执行完毕返回的结果集默认以元组显示
# 方式二:
cursor=conn.cursor(pymysql.cursors.DictCursor) # 以字典的方式 显示数据
                                  # 键是表的字段  值是表的字段对应的信息
# 3.pymysql操作数据库 # 执行sql语句 user = input(">>>:").strip() pwd = input(">>>:").strip() sql='select * from userinfo where name="%s" and password="%s"' %(user,pwd) # 注意%s需要加引号 rows=cursor.execute(sql) # 执行sql语句,有返回值,返回 sql查询成功的记录数目 # 获取真实数据 cursor.fetchone(),cursor.fetchall(),cursor.fetchmany(),类似管道取值,获取一条,所有,多条 cursor.scroll(1,'relative') # 控制光标 相对移动 表示相对于目前所在的位置 向后移动1条数据 cursor.scroll(3,'absolute') # 控制光标 绝对移动 表示相对于数据的起始位置 向后移动3条数据 cursor.close() conn.close()

 SQL 注入问题

   不要手动去拼接查询的 sql 语句 !!!

    sql 注入:就是利用注释等具有特殊意义的符号 来完成一些骚操作
    后续写 sql 语句  不要手动拼接关键性的数据
    而是让 excute 帮你去做拼接

username = input(">>>:").strip() password = input(">>>:").strip() sql = "select * from user where username='%s' and password='%s'"%(username,password) # 用户名正确 username >>>: jason' -- jjsakfjjdkjjkjs # 用户名密码都不对的情况 username >>>: xxx' or 1=1 --asdjkdklqwjdjkjasdljad password >>>: ''#### 增删改 # sql = "insert into user(username,password) values(%s,%s)" rows = cursor.excute(sql,('jason','123')) # 修改 sql = "update user set username='jasonDSB' where id=1" rows = cursor.excute(sql) """ 增和改 单单执行 excute 并不会真正影响到数据,需要再执行 conn.commit()才可以完成真正的增改
所以可以在连接时候配置自动提交参数 >>> autocommit = True
"""

# 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 帮你做替换 只能识别 %s
# if res:
#     print(cursor.fetchall())
# else:
#     print('用户名或密码错误')
# 一次插入多行记录 res = cursor.executemany(sql,[(),(),()])

 

posted @ 2019-08-23 19:20  速8赛亚人  阅读(203)  评论(0编辑  收藏  举报