格式化错误时解析CSV以进行数据库插入

Tay*_*PLM 1 csv coldfusion formatting parsing

我最近为我们的一名员工编写了一个邮件平台供我们使用.该系统运行良好,扩展性好,使用起来很有趣.但是,由于我无法弄清楚如何修复(相当缺乏经验的开发人员)的错误,它目前无法运行.

这个过程就像这样......

  1. 将CSV文件上载到特定的FTP目录.
  2. 转到import_mailing_list页面.
  3. 在FTP目录中选择一个CSV文件.
  4. 命名并描述列表包含的内容.
  5. 将文件标题与数据库列关联.

然后,后端循环遍历文件的每一行,将值与标题相关联,并将这些值导入数据库.

除了在特定情况下,原始CSV格式不正确时,这一切都非常有效.例如...

fname, lname, email
Bob, Schlumberger, bob@bob.com
Bobbette, Schlumberger
Another, Record, goeshere@email.com
Run Code Online (Sandbox Code Playgroud)

如您所见,第二行上缺少逗号.这在尝试拉"valArray [3]"(或valArray [2]时会导致错误,对于除了我的每种语言之外).

我正在寻找最有效的解决方案来防止这种错误发生.也许我应该检查一下数组长度,然后将它与我们试图拉动的索引进行比较,然后再将其拉出来.但要为每一个价值做这件事似乎效率低下.有人有另一个想法吗?

我们的堆栈是ColdFusion 8/9和MySQL 5.1.这就是我将数组索引称为[3]的原因.

Hen*_*nry 5

ArrayIsDefined(array, elementIndex),或ArrayLen(array)

似乎效率低下?

你必须编写你需要编码的代码,忘记低效率.在你快速完成之前(在需要时)正确使用它.