Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: zend-db
 
 автор: Shorr Kan   (01.02.2010 в 15:49)   письмо автору
 
 

Хотелось бы удостовериться, что правильно понимаю. Как происходит работа функций работы с бд в 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... поэтому совершенно непонятно, как проводить предварительную обработку данных. Если это цифра - ясно, если строка - совсем нет.

  Ответить  
 
 автор: Loki   (01.02.2010 в 16:14)   письмо автору
 
   для: Shorr Kan   (01.02.2010 в 15:49)
 

Может стоит начать с чтения документации к классу БД, который Вы используете? Уверен - вы удивитесь...

  Ответить  
 
 автор: Shorr Kan   (01.02.2010 в 16:34)   письмо автору
 
   для: 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. Да и множество аналогичных, само-собой разумеющихся вопросов. Я потому и не сформулировал четкого вопроса, потому что хочу добиться от себя понимания, а не от кого-то - ответа. Поэтому... как это работает?

  Ответить  
 
 автор: Саня   (01.02.2010 в 16:57)   письмо автору
 
   для: Shorr Kan   (01.02.2010 в 16:34)
 

Почему бы не залезть в исходники компонента и посмотреть?

  Ответить  
 
 автор: Shorr Kan   (01.02.2010 в 16:59)   письмо автору
 
   для: Саня   (01.02.2010 в 16:57)
 

Потому что есть небольшая вероятность, что кто-то это делал до меня. Но раз нет - залезу, посмотрю.

  Ответить  
 
 автор: Саня   (01.02.2010 в 17:06)   письмо автору
 
   для: Shorr Kan   (01.02.2010 в 16:59)
 

В любом случае собственноручное исследование кода ZF будет выгоднее.
1. Быстрее найдётся ответ, а то пока на форуме ответят...
2. Лучше будет пониматься внутренняя структура фреймворка

Из 2 вытекает много других полезных следствий.

  Ответить  
 
 автор: Саня   (01.02.2010 в 16:29)   письмо автору
 
   для: Shorr Kan   (01.02.2010 в 15:49)
 

Если используются плейсхолдеры, то предварительное экранирование не нужно.

  Ответить  
 
 автор: Trianon   (01.02.2010 в 23:01)   письмо автору
 
   для: Саня   (01.02.2010 в 16:29)
 

>Если используются плейсхолдеры, то предварительное экранирование не нужно...
...потому что не нужны сами кавычки.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования