MySQL中怎么用sql写一个自动增长的字符串?
MySQL为例,现在项目大部分都用框架实现,比如MyBatis框架,轻量级,功能强大:
在MyBatis中,如果写${变量名},则为直接把传入的值填充到SQL语句中;
如果写#{变量名},则为传入的值只能作为值,放到SQL语句中。
举例:
DELETE FROM student WHERE name=${stu_name}
如果这样写,假如用户恶意传入这样一个字符串:abc OR 1=1,那么整个SQL就变成了
DELETE FROM student WHERE name=abc OR 1=1,结果就是全部数据都删掉了。
这就是SQL注入,如果把${stu_name}换成#{stu_name},那么依然传入上面的字符串,那么SQL是这样的:DELETE FROM student WHERE name=`abc OR 1=1`,会删除名字为abc OR 1=1的学生,没有这个学生则什么都删除不掉,这样就防止了SQL注入。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有