|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 18 Aug 2004 17:16:01 To : Alexey Gradovtsev Subject : Re: Динамическое построение таблиц -------------------------------------------------------------------------------- Alexey Gradovtsev -> Alexey Gradovtsev @ Wed, 18 Aug 2004 12:54:51 +0000 (UTC): AC>>> Он там _текст запроса_, а не _значения полей_ формирует динамически. AC>>> Тут никакая quote и никакие placeholders не спасают - тут только AC>>> анализировать, что именно подсунули. AG>> А. Hу да. Вернулся к исходному запросу и понял, что прогнал... AG> С другой стороны, названия таблиц, столбцов и т.д. в SQL-запросах AG> тоже должны быть (в общем случае) заключены в кавычки. Чтобы AG> исключить ключевые слова (к примеру, я хочу назвать таблицу AG> "Select"). В mysql это одинарные кавычки, в postgre - двойные. Так AG> что все возвращается к quote. Hе-а. Я не помню, допустимы ли одинарные кавычки в этом месте в мыскле на самом деле (помню, что он допускает эскейпинг двойными значений), но в SQL синтаксис для квотинга имен полей и значений разный. Hе говоря уже о том, что не должны быть в общем случае, а должны быть в частных случаях, а в общем - могут. Hо главное - кавычки-то разные. AG> Что касается заменителей (placeholders), то ими пользуются не все и AG> не всегда, а знать про SQL-инъекции и ескейпинг все равно надо. placeholders - рулез. Правда, не в мыскле и не в постгресе (в них от этого просто удобнее), а в продвинутых, типа оракла. Где запрос компилируется предварительно и данные передаются соответственно типу, узнанному из базы в процессе компиляции. Там от попытки заменить их на quote может быть больно и обидно. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/256061c098dcc.html, оценка из 5, голосов 10
|