このコード行で cfqueryparam をどのように使用しますか?
SET mailing_list = <CFIF IsDefined("FORM.mailing_list")>#FORM.mailing_list#<CFELSE>0</CFIF>
このコード行で cfqueryparam をどのように使用しますか?
SET mailing_list = <CFIF IsDefined("FORM.mailing_list")>#FORM.mailing_list#<CFELSE>0</CFIF>
このような:
SET mailing_list = <CFIF IsDefined("FORM.mailing_list")>
<cfqueryparam value="#FORM.mailing_list#" cfsqltype="cf_sql_integer" />
<CFELSE>
0
</CFIF>
最近の CFML エンジンでは、三項条件演算子を使用できます。
SET mailing_list = <cfqueryparam value="#IsDefined("FORM.mailing_list") ? FORM.mailing_list : 0#" cfsqltype="cf_sql_integer" />
(ここでは間違いなく読みにくいですが。)
最良の方法は、クエリの上にパラメーターを設定し、完全に回避する可能性が最も高いです...
<cfparam name="Form.mailing_list" default="0" />
...
SET mailing_list = <cfqueryparam value="#FORM.mailing_list#" cfsqltype="cf_sql_integer" />
2つの別々のcfqueryparamを使用するだけです
SET mailing_list =
<cfif StructKeyExists(form,'mailing_lis't)>
<cfqueryparam cfsqltype="cf_sql_varchar" value "#FORM.mailing_list#" />
<cfelse>
0
</cfif>
私は通常IIF
、短い IF ステートメントに使用します。
SET mailing_list = <cfqueryparam value="#iif(IsDefined("form.mailing_list"), form.mailing_list, 0)#" cfsqltype="cf_sql_integer" />
それ以外の場合は、「長くてきれいな」方法を好みます。
<CFIF IsDefined("FORM.mailing_list")>
SET mailing_list = <cfqueryparam value="#FORM.mailing_list#" cfsqltype="cf_sql_integer" />
<CFELSE>
SET mailing_list = <cfqueryparam value="0" cfsqltype="cf_sql_integer" />
</CFIF>