SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。
实际应用时其实有点小复杂,比如;PreparedStatement,正则过滤参数,字符串过滤之类,不在此赘述。本文就这个知识点MARK一下基础语法.
3步:
begin
1.预检测某个东西,sql语句合法性
2.SQL=格式化+arg
3.执行sql语句
end
delimiter \\
CREATE PROCEDURE p (
in nid int
)
BEGIN
set @nid=nid;
PREPARE prod FROM 'select * from student where sid > ?'; --名字变量prod, ?是占位符
EXECUTE prod USING @nid; -- 不能写成 EXECUTE prod USING arg --而要写成 -@nid
DEALLOCATE prepare prod; -- 执行已经格式化完成后的sql语句 prod 得到结果集
END\\
delimiter ;