trl*_*wis 1 coldfusion null cfquery
我正在尝试首先检查NULL,如果值为NULL,则跳过INSERT.但这不是正在发生的事情.即使我没有在表单字段中输入任何内容,代码也会插入NULL记录.这几乎就像是在认识到不存在的东西.
<cfoutput>
<cfif form.TBCom is not "">
<cfquery name="TestTBComm" datasource="TrenaTest">
INSERT INTO Comment1 (
UniqueNum,
ComTyp,
Comments )
SELECT
'#UniqueNum#',
'#TBComV#',
'#TBCom#'
</cfquery>
</cfif>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
以前的答案是正确的,因为在测试一般字符串时,NULL检查不适用于CF. 你要么测试长度或价值.
那个问题让我感到害怕,以为我认为一个完整的例子是必要的.必须将用户提供数据的查询的每个字段都包含在CFQUERYPARAM中.查找术语" sql注入 "的原因.
此查询应该适合您:
<cfquery name="TestTBComm" datasource="TrenaTest">
INSERT INTO Comment1 (
UniqueNum,
ComTyp,
Comments )
VALUES (
<cfqueryparam cfsqltype="cf_sql_integer" value="#FORM.UniqueNum#">
, <cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.TBComV#" NULL="#!Len(FORM.TBComV)#">
, <cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.TBCom#" NULL="#!Len(FORM.TBCom)#">
)
</cfquery>
Run Code Online (Sandbox Code Playgroud)
在NULL参数中,请注意"!",它反转LEN()函数的结果.
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |