2011-09-12 42 views
1

我做一些愚蠢的事,但我不知道它是什麼,能有人指出我爲什麼我收到此錯誤:Coldfusion8參數索引超出範圍的錯誤

Parameter index out of range (1 > number of parameters, which is 0). 

從這個代碼,

這種形式:

<form id="form1" name="form1" method="post" action="?template=/Assets/Plugins/AmericanSurcharges/index.cfm&action=add" class="inputform"> 
    <tr> 
     <td> 
      <select name="datamonth"> 
       <option value=""></option> 
       <cfloop from="1" to="12" step="1" index="i"> 
        <cfset option = monthasstring(i) /> 
        <option value="#i#" >#option#</option> 
       </cfloop> 
      </select> 

     </td> 
     <td><input name="201data" type="text" id="201" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="301data" type="text" id="301" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="304data" type="text" id="304" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="316data" type="text" id="316" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="409data" type="text" id="409" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="430data" type="text" id="430" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="410data" type="text" id="410" size="6" maxlength="7" value="" class="data" /></td> 
     <td><input name="2205data" type="text" id="2205" size="6" maxlength="7" value="" class="data" /></td> 
     <td>&nbsp;</td> 
     <td><input type="submit" name="submit" id="submit" value=" Insert " /></td> 
    </tr> 
</form> 

職位,該腳本:

modObj = createObject("component", "surcharge"); 
command = modObj.insertsurcharges(form); 
writeoutput(command); 

調用這個函數:

<cffunction name="insertsurcharges" access="public" output="no" returntype="string" > 
    <cfargument name="form" required="yes" type="struct" /> 

    <cfquery name="insertsurcharges" datasource="#variables.dsn#" result="insertsurcharges_result"> 
     insert into nas_staticvalues (`datamonth`,`201`,`301`,`304`,`316`,`409`,`430`,`410`,`2205`) values 
      ( 
      `<cfqueryparam value="#form.datamonth#" CFSQLType="CF_SQL_VARCHAR" null="no" maxlength="20" />`, 
      `<cfqueryparam value="#form.201data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.301data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.304data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.316data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.409data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.430data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.410data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />`, 
      `<cfqueryparam value="#form.2205data#" CFSQLType="CF_SQL_FLOAT" null="no" scale="4" />` 
      ) 
    </cfquery> 

    <cfreturn insertsurcharges_result.GENERATED_KEY /> 

</cffunction> 

,我不斷地得到同樣的錯誤。

如果我更換所有的queryparams: - 該作品,以及

'#form.datamonth#', 
'#form.201data#', 
'#form.301data#', 
'#form.304data#', 
'#form.316data#', 
'#form.409data#', 
'#form.430data#', 
'#form.410data#', 
'#form.2205data#' 

插入的作品,另外,如果我採取的ColdFusion試圖與queryparams運行SQL &只是在MySQL運行它!

insert into nas_staticvalues (`datamonth`,`201`,`301`,`304`,`316`,`409`,`430`,`410`,`2205`) values (` (param 1) `, ` (param 2) `, ` (param 3) `, ` (param 4) `, ` (param 5) `, ` (param 6) `, ` (param 7) `, ` (param 8) `, ` (param 9) `) 

對於所有sql_float類型,數據庫接受6位數字和4位小數位數。

我必須缺少一些與cfqueryparam屬性 - 對嗎?

+1

嘗試不帶反引號的''。 – Tomalak

+1

你不應該需要cfqueryparams的單引號。 –

+0

刪除反引號似乎已經得到它......我認爲有使用cfqueryparam,你確實需要他們的情況..? –

回答

10

cfqueryparam從不需要引號。它將在需要時使用引號構造查詢,而不需要時使用引號。這是關於使用cfqueryparam的很棒的部分之一。