【问题标题】:Cannot create members with special character surname无法创建具有特殊字符姓氏的成员
【发布时间】:2014-10-30 23:30:00
【问题描述】:

我正在开发一个软件,我无法创建姓氏中带有特殊字符的新成员(即人)。例如,姓氏不能是“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#',

【问题讨论】:

  • 使用cfqueryparam,这样就可以了。您的报价需要转义
  • 哎呀,SQL注入。

标签: coldfusion postgresql-9.1 coldfusion-8 railo


【解决方案1】:

您应该对所有数据库插入使用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">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多