これは私がこれを百回行ったように私を大きく困惑させています。CFQUERYPARAMで渡された値が空として扱われています
CF paramsを使用して基本クエリを更新していますが、テーブルの主キーが空の値を渡しているため、重大なエラーが発生します。私は#form.id placeholder#
にハードコードされた番号を入力した場合でも
、私はこれを取得:
ここInvalid data '' for CFSQLTYPE CF_SQL_NUMERIC.
は私のコードベース
<cfquery name="updateIdea" datasource="#request.db#">
UPDATE freshideas
SET subject = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.subject#" null="no" />,
content = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.content_text#" />,
postmonth = <cfqueryparam cfsqltype="cf_sql_numeric" value="#form.postmonth#" />,
postyear = <cfqueryparam cfsqltype="cf_sql_numeric" value="#form.postyear#" />,
imglink = <cfqueryparam cfsqltype="cf_sql_varchar" value="#image#" />,
oindex = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.oindex#" null="no" maxlength="3" />
WHERE id = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.id#" null="no" />
</cfquery>
挿入は正常に動作し、列IDがAUTO_INCREMENTのintであります(5)。
"id"タイプは 'cf_sql_integer'です。したがって、 'form.postmonth'や' form.postyear'のように、他のフィールドの1つを指している 'cf_sql_numeric'というエラーメッセージが表示された場合です。 – Leigh
INSERTのcfqueryparamタグはupdate文と同じで、問題はありません。 –
私はあなたのクエリの名前を取り除くことをお勧めします。また、null = "no"を取り除く。それを試してください。私は朝起きてこの問題を解決するのに役立ちます。 –