Jac*_*ack 4 coldfusion cfquery coldfusion-8
我有以下内容cfquery:
<cfquery name="CQuery" datasource="XX.X.X.XXX">
INSERT INTO DatabaseName
(PhoneNumber_vch,
Company_vch,
date_dt)
VALUES(#PhoneNumber#,
#Company#,
#Date# )
</cfquery>
Run Code Online (Sandbox Code Playgroud)
公司名称不存在的情况下有空值,我相信因为我得到以下错误:
Error Executing Database Query.
[Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect syntax near ','.
Run Code Online (Sandbox Code Playgroud)
,错误消息中指向的逗号是在#Company#字段之后 .请让我知道是因为空值和最佳解决方法吗?
PhoneNumber,company和Date中的值是从XML SOAP响应中提取的,并正确使用了trim函数,如我在上一篇文章中所讨论的那样.
谢谢
小智 14
如果您在任何接受动态参数的数据库SQL上使用CFQueryParam,您可以一举两得.首先也是最重要的,防止SQL注入攻击,然后你可以使用null =""的属性在记录中插入一个NULL值.
<cfquery name="CQuery" datasource="XX.X.X.XXX">
INSERT INTO DatabaseName (PhoneNumber_vch, Company_vch, date_dt)
VALUES(
<cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(PhoneNumber)#" null="#NOT len(trim(PhoneNumber))#" />
,<cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(Company)#" null="#NOT len(trim(Company))#" />
,<cfqueryparam cfsqltype="cf_sql_timestamp" value="#Date#" null="#NOT len(trim(Date))#" />
)
</cfquery>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3129 次 |
| 最近记录: |