如何在Coldfusion中写入数据库时​​防止字段长度错误破坏脚本?

fre*_*ent 0 mysql csv import coldfusion insert

我正在尝试在我的数据库中创建CSV导入(使用Coldfusion8).

首先将CSV文件解析为Coldfusion数组("x"使用此UDF完成),然后我将其提供到临时表中进行验证,然后使用要导入CSV列的JSON映射将其实际提交到数据库.

一切都工作正常,除了字段长度......仍然会出错.

现在我像这样导入:

...
<cfif variables.c_comp NEQ "">
, <cfqueryparam value = "#x[variables.c_comp]#" cfsqltype="cf_sql_varchar" maxlength="50">
</cfif>
...
Run Code Online (Sandbox Code Playgroud)

x是正在分析的CSV-行和variables.c_comp是指定字段的JSON地图列数.

我的问题是,如果用户提交长度为51个字符的字段,则整个导入失败.

问题:
有没有办法导入前50个字符而不是抛出错误?或者也许只设置一个标志.

感谢您的投入!

dun*_*can 6

只需使用Left()函数将其修剪为maxlength

<cfqueryparam value = "#Left(x[variables.c_comp], 50)#" cfsqltype="cf_sql_varchar" maxlength="50">
Run Code Online (Sandbox Code Playgroud)