Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Текст с кавычкой в SQL-запросе [C++Builder] / 7 сообщений из 7, страница 1 из 1
11.06.2006, 20:50
    #33785650
Никс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
Когда я добавляю текст c SQL запросом Format("INSERT INTO t1 VALUES(\'%s\', \'%s\')", ARRAYOFCONST((st1, st2)));
Может возникнуть ситуация когда пользователь введёт в текст кавычку: '. В этом случае получается, что в тексте лишние кавычки естественно запрос не работает. Как исправить?
...
Рейтинг: 0 / 0
11.06.2006, 22:13
    #33785699
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
Попробуйте заменить кавычку на две.
...
Рейтинг: 0 / 0
11.06.2006, 22:29
    #33785707
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
Никс пишет:
Правильнее всего тут использовать Bind-переменные.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
11.06.2006, 23:53
    #33785747
Никс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
PPA
Никс пишет:
Правильнее всего тут использовать Bind-переменные.
Posted via ActualForum NNTP Server 1.3
Что ты имеешь ввиду. Если можно с примером.
...
Рейтинг: 0 / 0
12.06.2006, 09:09
    #33785852
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
Никс PPA
Никс пишет:
Правильнее всего тут использовать Bind-переменные.
Posted via ActualForum NNTP Server 1.3
Что ты имеешь ввиду. Если можно с примером.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
              TOCommit vCommit;
              TOQuery Query("insert into smart_hints(help_id, name_action,hint_txt) values (:v1,:v2,:v3)");
              Query->DeclareAndSet("v1",otInteger,p_Action->HelpContext);
              Query->DeclareAndSet("v2",otString,p_Action->Name);
              Query->DeclareAndSet("v3",otString,p_Action->Hint.Length()?p_Action->Hint:p_Action->Caption);
              Query->Execute();
              vCommit.Commit();
...
Рейтинг: 0 / 0
13.06.2006, 18:49
    #33788682
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
НиксКогда я добавляю текст c SQL запросом Format("INSERT INTO t1 VALUES(\'%s\', \'%s\')", ARRAYOFCONST((st1, st2)));
Может возникнуть ситуация когда пользователь введёт в текст кавычку: '. В этом случае получается, что в тексте лишние кавычки естественно запрос не работает. Как исправить?

грамотнее всего - использовать парсинг вводимого текста и найти инфу в доке на Ваш движок БД, об "эскейп" последовательностях. На разных движках различается (если я не глючу). Ну и далее заменять не ликвидные символы на конструкции которые однозначно правильно воспримет Ваш движок БД.


с уважением
(круглый)
...
Рейтинг: 0 / 0
13.06.2006, 19:44
    #33788779
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текст с кавычкой в SQL-запросе [C++Builder]
Не забудьте рассказать пионэру об SQL-инжекции...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Текст с кавычкой в SQL-запросе [C++Builder] / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]