2014-10-30 4 views
-1

Я работаю над программным обеспечением, где я не могу создать нового участника (т.е. человека) со специальными символами в фамилии. Например, фамилия не может быть «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#', 
+1

Используйте 'cfqueryparam', и это сработает. Ваша цитата должна быть удалена –

+0

Ouch, SQL injection. –

ответ

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"> 
Смежные вопросы