2014-10-30 63 views
-1

我正在開發一個軟件,我無法創建具有特殊字符的新成員(即人員)。例如,姓氏不能是「奧康納」,因爲它包含一個特殊字符。但是這種類型的姓氏可以直接添加到數據庫中。無法創建具有特殊字符姓氏的成員

我正在使用ColdFusion和PostgreSQL 9.3。它通過在編碼中刪除姓氏之前的「cleantrim」函數起作用,但這是一個臨時解決方案。任何人都可以幫助我如何做到這一點?

    '#Call.tSurName#', 
        '#TrimCleanValue(Call.tFirstName)#', 
        '#TrimCleanValue(CAll.tMiddleName)#', 
        '#TrimCleanValue(Call.tPReferredName)#', 
        '#TrimCleanValue(Call.tScoutingName)#', 
        '#TrimCleanValue(Call.tPostNominal)#', 
        '#Call.tTitle#', 
+1

使用'cfqueryparam',這將工作。您的報價需要被轉義 – 2014-10-31 00:16:14

+0

Ouch,SQL注入。 – 2014-10-31 01:17:23

回答

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">