我需要遍历变量并将返回值写入DB。 到目前为止,这是我的代码:
<cffunction name="csv">
<cffile action="read" file="test.csv" variable="csvfile" charset="utf-8">
<cfset csv_query = app.csvToQuery.CSVToQuery(CSV = csvFile.Trim()) />
<cfloop query="csv_query">
<cfset getInfo = app.directory.searchAll(
findNo = "#replace(csv_query.column_1, "test", "", 'all')#",
findBy = "Null"
)>
<!--- <cfdump var="#getInfo#"> --->
<cfoutput><cfdump var="#getInfo.NAME#"></cfoutput>
<cftry>
<cfquery datasource="#app.dsn#">
INSERT INTO WRITEINFO (
Name,
) VALUES (
'#val(getInfo.NAME)#',
)
</cfquery>
<cfcatch type="database">
</cfcatch>
</cftry>
</cfloop>
</cffunction>
它写入DB,但它只写入它获得的第一个值。我已经循环查询,当我转储值(<cfdump var="#getInfo.NAME#">
)时,我可以看到我需要的所有值,但它们只是没有插入到数据库中
答案 0 :(得分:0)
看起来好像无声地失败了。您捕获数据库错误但在发生错误时不执行任何操作。一个插入语句有效。在其他插入时,它可能会失败(例如,唯一索引违规,&#34;名称&#34;插入表格中的列等等)。也许摆脱try / catch块(至少是暂时的),看看会发生什么。