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,[(),(),()])

 

转载于:https://www.cnblogs.com/pupy/p/11402132.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值