我正在尝试执行以下CFML:

<cfquery name="koppelData" datasource="#request.DataSource#">

   INSERT INTO t_user_profile
     (Username, ProfileID, AanvraagID)
   VALUES
     (<cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.username#">,
      <cfqueryparam cfsqltype="cf_sql_integer"  value="#laatste#">),
      <cfqueryparam value="#FORM.vragenlijst#" cfsqltype="cf_sql_integer" >)
</cfquery>

这引发了以下错误(我的SQL Server版本是荷兰语):

Macromedia] [SQLSERVER JDBC驱动程序] [SQLSERVER] DE INSERT-INSTRUCTIE bevat Meer Kolommen dan er waarden eer waarden zijn opgegeven在de values-component中。 De componment Moet overeenkomen中的het aantal waarden在de Insert-Instructie中遇到了het aantal kolommen。

基本上翻译如下:插入指令包含更多列,因为值语句中指定的值。值语句中的字段数必须等于插入语句中的字段数。

我做错了什么?

编辑:

单语引号无济于事,如:

Error Executing Database Query.

[Macromedia][SQLServer JDBC Driver]Invalid parameter binding(s).

The error occurred in C:\Users\Adm1n\Adobe ColdFusion Builder workspace\PASS\jsexec\maak_lid.cfm: line 52
50 :                                '<cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.username#">',
51 :                                <cfqueryparam cfsqltype="cf_sql_integer"  value="#laatste#">),
52 :                                <cfqueryparam value="#FORM.vragenlijst#" cfsqltype="cf_sql_integer" >
53 :                            )
54 :                    </cfquery>

找到它:看看第二个参数,最后一个字符:

<cfqueryparam cfsqltype="cf_sql_integer"  value="#laatste#">),

这是一个典型:-s

有帮助吗?

解决方案

在第二个参数的末尾,您有一个额外的括号。总而言之:

<cfquery name="koppelData" datasource="#request.DataSource#">
INSERT INTO
    t_user_profile
   (Username, ProfileID, AanvraagID)
    VALUES
     (
      <cfqueryparam cfsqltype="cf_sql_varchar" value="#FORM.username#">,
       <cfqueryparam cfsqltype="cf_sql_integer"  value="#laatste#">,
       <cfqueryparam value="#FORM.vragenlijst#" cfsqltype="cf_sql_integer" >
      )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top