まず、コード。 Coldfusion:cfqueryparamを含む動的クエリを実行
<cfquery name="qName" datasource="#dsn#">
#myQueryStruct[arguments.type]#
</cfquery>
しかし、私はエラーを取得しています:私は動的に以下のようなクエリを実行する必要が
<cfset myQueryStruct = {
qone = "select * from t1 where column = <cfqueryparam cfsqltype='cf_sql_varchar' value='#arguments.a1#'>",
qtwo = "select * from t2 where column = <cfqueryparam cfsqltype='cf_sql_varchar' value='#arguments.a1#'>"
}>
:私は、クエリの構造体を作ってるんだ
Error Executing Database Query.
[Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect syntax near '<'.
に思えますクエリの「<cfqueryparam cfsqltype='cf_sql_varchar' value='#arguments.a1#'>
」との間にエラーがあります(<)
試しましたevaluate()
を使用して、このエラーを得ている:
Invalid CFML construct found on line 1 at column 15.
ColdFusion was looking at the following text:
t1
は、私は私の質問は、私たちは私がを述べた方法のようにこれを行うことができます(私は何かが欠けている必要があります)され我々は<cfquery>
内<cfif>
はしごを使ってこれを行うことができます知っているが、 CFMLでは不可能ですか?
'cfqueryparam'の' cfscript'バージョンを調べたいと思うかもしれません。確かに言うことはできませんが、あなたがしようとしていることに当てはまるかもしれません。 https://cfdocs.org/cfqueryparam – snackboy
CFQUERYPARAMの使用は賞賛されますが、動的クエリでそれらを使用するのは難しいです。ソリューションについては、以下のAndreasの回答を参照してください。一方、cfqueryタグの間にコードを出力するだけでよいでしょう。これがcfqueryの目的であり、私が実際にスクリプトにタグを使用する場所の1つで、SQLマネージャから単純にコピーしてバインディングを追加するのが簡単です。 –