动态执行sql语句

防止sql注入不但可以从pymysql里面可以,也可以从mysql中动态执行sql注入。

pumysql的防注入见pymysql的模块那节。

下面是mysql的防止sql注入的代码。

delimiter \
create procedure p4 (
    in nid int      -- 声明变量
)
begin
        set @nid=nid; -- 设置 @赋值
    prepare prod from 'select * from student where sid > ?'; -- 预编译?是站位符
    execute prod using @nid; -- 将?赋值,将prof 变为正常语言
    deallocate prepare prod; -- 执行Prof
end\
delimiter ;

下面是美化的代码

delimiter \
CREATE PROCEDURE p4 ( IN nid INT) 
BEGIN
    SET @nid = nid;
    PREPARE prod FROM 'select * from student where sid > ?';    
    EXECUTE prod USING @nid;
    DEALLOCATE PREPARE prod;    
END \ 
delimiter;

原文地址:https://www.cnblogs.com/accolade/p/10651114.html