que je fais quelque chose de stupide, mais je ne sais pas ce qu'il est, quelqu'un peut-il me indiquer pourquoi j'obtiens cette erreur:ColdFusion8 index Paramètre hors erreur de plage
Parameter index out of range (1 > number of parameters, which is 0).
De ce code ,
cette forme:
<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> </td>
<td><input type="submit" name="submit" id="submit" value=" Insert " /></td>
</tr>
</form>
messages à ce script:
modObj = createObject("component", "surcharge");
command = modObj.insertsurcharges(form);
writeoutput(command);
appeler cette fonction:
<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>
et je reçois constamment la même erreur.
Si je remplace tous les queryparams avec:
'#form.datamonth#',
'#form.201data#',
'#form.301data#',
'#form.304data#',
'#form.316data#',
'#form.409data#',
'#form.430data#',
'#form.410data#',
'#form.2205data#'
Les travaux d'insertion, même si je prends le sql que Coldfusion a essayé de courir avec les queryparams & il suffit d'exécuter sur MySQL - qui fonctionne aussi bien!
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) `)
La base de données accepte 6 chiffres avec 4 décimales pour tous les types sql_float.
Il me manque quelque chose avec les attributs cfqueryparam - non?
Essayez le '' sans les backticks. –
Tomalak
Vous ne devriez pas non plus avoir besoin des guillemets simples autour des cfqueryparams. –
en enlevant les backticks semble l'avoir compris ... Je pensais qu'il y avait une situation en utilisant cfqueryparam que vous en aviez besoin ..? –