|
|
|
| Хотелось бы удостовериться, что правильно понимаю. Как происходит работа функций работы с бд в zendframework? Вопрос об экранировании кавычек и прочего... вариации написания:
$this->db->query("select from tbl where stolb=?",array($_POST['stolb']));
$this->db->query("select from tbl where stolb=?",array(mysql_escape_string($_POST['stolb'])));
$this->db->query("select from tbl where stolb=".$_POST['stolb']);
$this->db->query("select from tbl where stolb='".mysql_escape_string($_POST['stolb'])."'");
я пока никак не могу понять, как он точно работает, но складывается впечатление, что кавычки вокруг значения добавляются автоматически, если в этом есть необходимость + экранирование тоже делается, если отключена magic_quotes... поэтому совершенно непонятно, как проводить предварительную обработку данных. Если это цифра - ясно, если строка - совсем нет. | |
|
|
|
|
|
|
|
для: Shorr Kan
(01.02.2010 в 15:49)
| | Может стоит начать с чтения документации к классу БД, который Вы используете? Уверен - вы удивитесь... | |
|
|
|
|
|
|
|
для: Loki
(01.02.2010 в 16:14)
| | Я, некоторым образом, догадался это сделать. И что мы видим? http://framework.zend.com/manual/en/zend.db.adapter.html - о, да, есть опция автоэкранирование. Как я удивлен... Это каким-то образом отвечает на мой вопрос? Попробуйте подумать глубже - magic_quotes (on/off) + zend db, с включенным и отключенным автоэкранированием. Различные вариации использования методов (некоторые варианты я показал). Я спросил - как это работает. А не как мне экранировать пагубные данные. И чтение документации мне не ответило на вопрос - если вы более понятливы, то расшифруйте мне междустрочье документации и поясните, например, что делать с данными, которые уже экранированы, но в zenddb включен AUTO_QUOTE_IDENTIFIERS, а в php - magic_quotes. Да и множество аналогичных, само-собой разумеющихся вопросов. Я потому и не сформулировал четкого вопроса, потому что хочу добиться от себя понимания, а не от кого-то - ответа. Поэтому... как это работает? | |
|
|
|
|
|
|
|
для: Shorr Kan
(01.02.2010 в 16:34)
| | Почему бы не залезть в исходники компонента и посмотреть? | |
|
|
|
|
|
|
|
для: Саня
(01.02.2010 в 16:57)
| | Потому что есть небольшая вероятность, что кто-то это делал до меня. Но раз нет - залезу, посмотрю. | |
|
|
|
|
|
|
|
для: Shorr Kan
(01.02.2010 в 16:59)
| | В любом случае собственноручное исследование кода ZF будет выгоднее.
1. Быстрее найдётся ответ, а то пока на форуме ответят...
2. Лучше будет пониматься внутренняя структура фреймворка
Из 2 вытекает много других полезных следствий. | |
|
|
|
|
|
|
|
для: Shorr Kan
(01.02.2010 в 15:49)
| | Если используются плейсхолдеры, то предварительное экранирование не нужно. | |
|
|
|
|
|
|
|
для: Саня
(01.02.2010 в 16:29)
| | >Если используются плейсхолдеры, то предварительное экранирование не нужно...
...потому что не нужны сами кавычки. | |
|
|
|