флейм. плейсхолдеры для sql

Solid

Drosera anglica
Андрейка
Внятно объясни, что требуется обработать... валидация данных или что?
 

Андрейка

Senior pomidor developer
Solid
mysql_pquery('SELECT a,b FROM table WHERE a=? AND d LIKE "%?%" LIMIT 2,?', $_REQUEST['a'], $_REQUEST['name'], $_REQUEST['num']);

когда это будет работать - будет о чем говорить )
 

Solid

Drosera anglica
Андрейка
Зачем вообще использовать mysql_pquery если есть prepare/exec?
 

Андрейка

Senior pomidor developer
Solid
нет, тебе с первым - он предложил использовать mysql_pquery, наскока я помню.. зачем он это предложил - я не знаю - все вопросы к нему
и тебе же со вторым - он объясняет почему mysqli_prepare не рулит - все возражения ему же
 

Wicked

Новичок
проблема like'а решается так:
mysql_pquery('SELECT a,b FROM table WHERE a=? AND d LIKE ? LIMIT 2,?', $_REQUEST['a'], "%".$_REQUEST['name']."%", $_REQUEST['num']);
не уверен, только, что limit сработает правильно.
 

Rammstein

PHPClub::News
А вот и я :)
По моему мнению это следует использовать лишь из-за удобства (не заморачиваешься на закавычивание и т.п.).

В теории, конечно, правильно ещё использовать prepared statements если идёт серия однотипных запросов, но я хз, ниразу ещё такие случаи в практике не попадались. Т.е. были случаи, когда однотипные запросы, но между ними ещё выполнялись другие запросы, а это уже не позволяет оставлять statement - выпадает ошибка "уже одно штуко стайтмент есть, удаляй нах, иначе расплачусь". Но не особо данный вопрос рассматривал, может есть какое решение этой проблемы.
 

Solid

Drosera anglica
Wicked
LIMIT работает.
Темболее что можно приводить к типам, вроде: (int)$_POST['num']
 

Андрейка

Senior pomidor developer
Solid
вы мну улыбаете ) ну можно не только к типам приводить.. использовать mysql_real_escape_string тоже никто не запрещает, не так ли?
 

bkonst

.. хочется странного?...
Андрейка, вы так реалистично дурачком притворяетесь... Вам не нравится, что сия реализация типы не проверяет? Так извините, mysqli_prepare в PHP 4 как-то за последнее время не появилась. Уж лучше клиентские плейсхолдеры, которые хотя бы mysql_real_escape_string сделают, чем всё ручками. Или вы в своей башне из слоновой кости про PHP 4 уже забыли?
 

Андрейка

Senior pomidor developer
bkonst
мну вообще сия реализация не нравицца никак... забейте на mysqli_prepare - эта реализация мне не будет нравицца и в php4
расскажите мне как конкретная реализация упрощает вам лично жизнь? можете начать с "раньше я приходил на работу к пол шестого утра и работал до часу ночи.. начались проблемы в семье, шеф был мной недоволен,... но когда я воспользовался mysql_pquery... "
 

bkonst

.. хочется странного?...
Автор оригинала: Андрейка
bkonst
мну вообще сия реализация не нравицца никак... забейте на mysqli_prepare - эта реализация мне не будет нравицца и в php4
"Не нравится - не ешь". Можно и stripslashes для каждого параметра, получаемого от пользователя, руками прописывать, а можно обертку написать. (mysql_pquery не смотрел, звыняйте. Необходимый минимум, я думаю, оно выполняет).

расскажите мне как конкретная реализация упрощает вам лично жизнь? можете начать с "раньше я приходил на работу к пол шестого утра и работал до часу ночи.. начались проблемы в семье, шеф был мной недоволен,... но когда я воспользовался mysql_pquery... "
У меня запросы уже (относительно) давно QueryObject генерит, так что проблем в семье не наблюдается. Спасибо за беспокойство.
 

Андрейка

Senior pomidor developer
bkonst
"Не нравится - не ешь".
да что-то вы сами без аппетита кушаете.. да еще и с закрытыми глазами... наверное очень вкусно
 

bkonst

.. хочется странного?...
Ах да, это ж флейм.
Ну, если хочется закатывать солнце вручную - бог в помощь.
 

hermit_refined

Отшельник
Wicked
А что, существуют ещё хостеры, включающие magic_quotes и не позволяющие их отключать?
 

StUV

Rotaredom
расскажите мне как конкретная реализация упрощает вам лично жизнь? можете начать с "раньше я приходил на работу к пол шестого утра и работал до часу ночи.. начались проблемы в семье, шеф был мной недоволен,... но когда я воспользовался mysql_pquery... "
зачОт =))))))))))))))))
 
Сверху