在添加记录时,我有一个要插入答案表的问题 ID 列表。
<!--- answers query --->
<cfquery name="answers">
SELECT answer, rank
FROM answers
WHERE question_id IN (<cfqueryparam cfsqltype="cf_sql_integer" list="true" separator="," value="#qid#">)
</cfquery>
这qid
是我检索答案的旧问题 ID 的列表,然后我用新的问题 ID 复制相同的答案。
<!--- list of questionids --->
<cfset questionid = ArrayToList(idArray)>
<cfquery name="insertanswers">
INSERT INTO answers (
question_id, answer, rank
)
VALUES
<cfloop query="answers">
(
<cfqueryparam cfsqltype="cf_sql_integer" list="true" separator="," value="#questionid#">
,<cfqueryparam cfsqltype="cf_sql_varchar" value="#answers.answer#">
,<cfqueryparam cfsqltype="cf_sql_numeric" value="#answers.rank#">
)
<cfif answers.CurrentRow LT answers.RecordCount>,</cfif>
</cfloop>
</cfquery>
在添加记录时column count doesn't match value count
出现错误,但是当我用它包装代码cftry
并转储它时,我发现它以逗号分隔的形式为每个答案获取两个 id。有没有办法为每个答案只传递一个 id?我只是用较新的问题 ID 替换较旧的问题 ID。