我们在python中编写sql语句时会遇到各种问题,比如我们在编写用户登录功能时,只需要输对姓名或者用户名密码都输入错误了,但是却能够东路成功,这是因为遇到了SQL注入问题导致的
SQL注入问题就是利用特殊的组合产生特殊的含义,从而避开正常的业务逻辑
eg:
sql = 'select * from user where name="jason" --fsdag" and spwd=""'
转成SQL语句就是
select * from user where name='jason' --fsdag' and spwd='' # 用户名后面的语句被注释了
sql = "select * from user where name='' or 1=1 --fgdsfh'and pwd=''"
转成SQL语句
select * from user where name='' or 1=1 --fgdsfh' and pwd=''
# where后面是or连接的只要有一个成立就成立
针对上面的这种注入问题使用execute即可解决
sql = 'select * from user where name=%s and pwd=%s'
cursor.execute(sql,(username,password))
execute还有一个兄弟executemany,它可以一次性传入多条数据 executemany[sql,(),()]
视图
视图就是我们通过查询得到一张表,然后保存下来留待下次使用但是这张表是虚拟的,只能查询不能做修改删除操作
create view teacher_course as
select * from teacher inner join course on teacher.tid = course.teacher_id
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix