我正在开发一个软件,我不能在姓氏中创建一个带有特殊字符的新成员(即人)。例如,姓氏不能是" O' Connor",因为它包含一个特殊字符。但是这种类型的姓氏可以直接添加到数据库中。
我正在使用ColdFusion和PostgreSQL 9.3。它的工作原理是删除" cleantrim"在编码之前的姓氏功能,但它是一个临时解决方案。任何人都可以帮助我如何做到这一点吗?
'#Call.tSurName#',
'#TrimCleanValue(Call.tFirstName)#',
'#TrimCleanValue(CAll.tMiddleName)#',
'#TrimCleanValue(Call.tPReferredName)#',
'#TrimCleanValue(Call.tScoutingName)#',
'#TrimCleanValue(Call.tPostNominal)#',
'#Call.tTitle#',
答案 0 :(得分:4)
您应该对所有数据库插入使用cfqueryparam
。特别是来自客户的东西。 cfqueryparam不仅有助于防止SQL注入,它还可以逃避引号,并有助于提高查询速度。
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tSurName#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tFirstName#">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tMiddleName">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tPReferredName">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tScoutingName">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tPostNominal">,
<cfqueryparam cfsqltype="cf_sql_varchar" value="#Call.tTitle">