обработка специального символа в строке при сохранении записи в sqlite - PullRequest
4 голосов
/ 27 марта 2009

в следующем фрагменте кода я вижу, что когда мое «описание» выглядит примерно так: " ' ' ", у меня проблема с обновлением описания до записи sqlite. Как мне справиться с характером? спасибо! * * 1002

sql = wxString::Format(
"UPDATE event SET event_description='%s' WHERE id=%d",
description.c_str(),
event_id);
rc = sqlite3_exec((sqlite3 *)_theDB, sql.c_str(), NULL, 0, &sqlError);

ОП ответил на свой вопрос:

проверьте это FAQ нам нужно заменить вхождения 'на' 'в строке

1 Ответ

1 голос
/ 27 марта 2009

Удвоение всех одинарных кавычек в строке описания - один из способов сделать это. Таким образом вы можете избежать вредоносных описаний (см. Таблицы Бобби ).

 ' ' 

становится:

 '' '' 

И что более важно, потенциально опасное описание:

' WHERE 1=1 DELETE FROM Event --

становится безвредным:

'' WHERE 1=1 DELETE FROM Event --

Другой (более безопасный) способ - использовать подготовленные заявления .

...