【发布时间】:2025-12-16 15:15:02
【问题描述】:
我正在加载 CSV,并尝试在 MySQL 中插入内容。其中一个字段中有逗号,例如:
"Jane Doe","Boston","None","Yes","No"
"John Doe","New York","No garlic, onions, or nuts","Yes","No"
"Mary Doe","New York","None","Yes","No"
我从读取文件开始:
<cffile action="read"file="/var/www/html/temp.csv" variable="datacsv">
然后我开始一个循环:
<cfloop index="index" list="#datacsv#" delimiters="#chr(13)#,#chr(10)#">
<cfset item1 = Replace(listgetAt(index,1), """", "", "ALL")> #item1#<br>
<cfset item2 = Replace(listgetAt(index,2), """", "", "ALL")> #item2#<br>
<cfset item3 = Replace(listgetAt(index,3), """", "", "ALL")> #item3#<br>
<cfset item4 = Replace(listgetAt(index,4), """", "", "ALL")> #item4#<br>
<cfset item5 = Replace(listgetAt(index,5), """", "", "ALL")> #item5#<br>
</cfloop>
我的问题是,在第二项(John Doe)中,第三个字段中的逗号被解析为新字段。所以我要么需要找出我遗漏的原因,要么去掉任何字段中的逗号并用不同的字符替换它们。
【问题讨论】:
-
你想对数据做什么?电子表格还是数据库?
-
我看到你有智能引号。你的字符串会有智能引号还是这只是一个例子?
-
数据库,智能引号只是示例。我只担心引号之间的逗号。
-
有什么理由不能使用 MySQL 的bulk loading tool?它应该处理嵌入的逗号,并且通常比一次插入一行要快得多。
-
请注意:“我知道如何在 CFML 中完成所有逻辑”并不意味着这是最好的方法,即使大部分已经完成。有时,学习一种新方法非常值得您花时间和精力。如果这是大数据,您可能会在应用程序端而不是 SQL 端进行验证,从而给您的方式带来巨大的瓶颈。
标签: coldfusion cfml railo lucee