這讓我感到莫名其妙,因爲我已經做了這麼多次,但現在卻讓我失望了。傳遞的值在CFQUERYPARAM中被視爲空
我正在使用CF參數進行基本的查詢更新,並且表的主鍵傳入一個空值,導致嚴重故障。
即使我進入一個硬編碼號爲#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'。因此,如果錯誤消息顯示「cf_sql_numeric」指向其他字段之一是問題,如「form.postmonth」或「form.postyear」。 – Leigh 2012-03-31 03:25:16
INSERT的cfqueryparam標記與update語句相同,並且沒有問題。 – 2012-03-31 03:33:22
我建議擺脫你的查詢名稱。另外,擺脫null =「否」。試試看。我將在早上工作,並可以幫助你解決這個問題。 – 2012-03-31 03:33:45