gpt4 book ai didi

mysql - ColdFusion10 - 通过插入查询查询 cfloop

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:57 25 4
gpt4 key购买 nike

第一次发帖。我正在使用 <CFSPREADSHEET>从 Excel 创建查询,然后尝试将查询结果插入 MySQL 表。那工作正常。我还需要从一列中获取一个值并将其正确的 ID 号插入到表中的 ID 列中。这是我的代码。我得到的结果是在每个表行中插入相同的 ID (6)。在这里提供帮助肯定会受到赞赏。谢谢!

<cfspreadsheet action="read" 
src="#myFile#"
sheet="5"
excludeheaderrow="true"
headerrow="1"
query="newQuery" />

<cfloop query="newQuery">
<!--- set ID variables --->
<cfif newQuery.Branch EQ "Army">
<cfset variables.Branch_ID = 6 />
<cfelseif newQuery.Branch EQ "Marine Corps">
<cfset variables.Branch_ID EQ 9 />
<cfelseif newQuery.Branch EQ "Navy">
<cfset variables.Branch_ID EQ 7 />
<cfelseif newQuery.Branch EQ "Air Force">
<cfset variables.Branch_ID EQ 8 />
<cfelseif newQuery.Branch EQ "Coast Guard">
<cfset variables.Branch_ID EQ 10 />
</cfif>

<cfquery name="importXLS" datasource="memorials_mysql">
INSERT INTO honorees_temp(FirsttName,MName,LastName,Branch,Branch_ID,Unit)
VALUES
('#Trim(FirstName)#',
'#Trim(MName)#',
'#Trim(LastName)#',
'#Trim(Branch)#',
#variables.Branch_ID#,
'#Trim(Unit)#')
</cfquery>
</cfloop>

最佳答案

一个问题是您的 cfset 中存在语法错误声明。在 cfset 中你需要使用 =而不是 EQ .

<!--- set ID variables --->
<cfif newQuery.Branch EQ "Army">
<cfset variables.Branch_ID = 6 />
<cfelseif newQuery.Branch EQ "Marine Corps">
<cfset variables.Branch_ID =9 />
<cfelseif newQuery.Branch EQ "Navy">
<cfset variables.Branch_ID =7 />
<cfelseif newQuery.Branch EQ "Air Force">
<cfset variables.Branch_ID = 8 />
<cfelseif newQuery.Branch EQ "Coast Guard">
<cfset variables.Branch_ID =10 />
</cfif>

newQuery.Branch 的值是什么?如果您的 if 语句中没有任何匹配项,它将保留最后一个值,因为它没有被重新初始化

您还应该使用 <cfqueryparam>在您的 INSERT 语句上。

此外,这更多是个人喜好,但使用 cfswitch 比使用多个 else if 更有效声明。

<cfswitch expression="#trim(newQuery.Branch)#">
<cfcase value="Army" >
<cfset Branch_ID = 6 />
</cfcase>
<cfcase value="Marine Corps" >
<cfset Branch_ID = 9 />
</cfcase>
<cfcase value="Navy" >
<cfset Branch_ID = 7 />
</cfcase>
<cfcase value="Air Force" >
<cfset Branch_ID = 8 />
</cfcase>
<cfcase value="Coast Guard" >
<cfset Branch_ID = 10 />
</cfcase>
<cfdefaultcase>
<!--- set either a default value or throw an error, depending on your needs --->
<cfset Branch_ID = 0>
<cfthrow message="Invalid Branch_ID">
</cfdefaultcase>
</cfswitch>

关于mysql - ColdFusion10 - 通过插入查询查询 cfloop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com