为了防止 sql 注入,我在 ColdFusion 的介绍中读到我们将使用 cfqueryparam 标签。
但是在使用存储过程时,我将变量传递给 SQL Server 中相应的变量声明:
DROP PROC Usr.[Save]
GO
CREATE PROC Usr.[Save]
(@UsrID Int
,@UsrName varchar(max)
) AS
UPDATE Usr
SET UsrName = @UsrName
WHERE UsrID=@UsrID
exec Usr.[get] @UsrID
问:调用存储过程时,包含 cfSqlType 有什么价值吗?以下是我目前在 Lucee 中的做法:
storedproc procedure='Usr.[Save]' {
procparam value=Val(form.UsrID);
procparam value=form.UsrName;
procresult name='Usr';
}