MySQL安全管理预处理
1、什么是预处理
预处理:prepare statement,一种预先编译SQL指令的方式,预处理不同于直接处理,要将要执行的SQL指令先发送给服务器编译,然后通过指令执行 预处理:prepare statement,一种预先编译SQL指令的方式,预处理不同于直接处理,要将要执行的SQL指令先发送给服务器编译,然后通过指令执行
预处理的基本语法
发送预处理:prepare 预处理名字 from '要执行的SQL指令'
执行预处理:execute 预处理名字
2、什么是预处理管理
预处理属于会话级别:即当前用户单次连接(断开会被服务器清理掉)
删除预处理:deallocate | drop prepare 预处理名字

3、预处理的作用
性能优化
效率优化:同样的SQL不用每次都进行编译
普通处理:每次都要编译
预处理:编译一次
网络传输优化:复杂的SQL指令只需要传输一次
普通处理:每次都需要网络传输SQL指令
预处理:发送的是结构,数据是后期执行传入(传入协议不一样,数据安全性高)
安全:有效防止SQL注入(外部通过数据的特殊使用使得SQL的执行方式改变)
普通处理:直接发送给服务器执行(容易出现SQL注入)
预处理:发送的是结构,数据是后期执行传入(传入协议不一样,数据安全性高)
4、预处理参数
预处理参数:在执行预处理的时候传入预处理需要的可变数据,一般预处理都不会是固定死的SQL指令,而是具有一些数据可变的执行(条件),可变数据的位置使用占用符?占位
基本语法:prepare 预处理名字 from '预处理指令,变化部分使用?代替'
在执行预处理的时候将实际数据传进去代替占位符号执行SQL在执行预处理的时候将实际数据传进去代替占位符号执行SQL
数据存储到变量(预处理传入的值必须是变量保存的)
set @变量名=值
使用using关键字传参
execute预处理名字 using @变量名
数据传入的顺序与预处理中占位符的顺序一致

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本