Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Ну это вроде как побочный эффект ps, я так понял, что благодаря отделению данных от запроса методом каких-нить placeholders можно экранировать данные.
А основная задача ps кажись ускорение выполнения однообразных запросов.
Использую, в рельсах совсем недавно прикрутили 🙂
Но все равно не уверен, что если не использовать placeholders, а в подготавливаемом запросе интерполировать какую-нить переменную извне, то есть подготовить запрос с инъекцией.
SELECT * FROM entries WHERE id IN(' . $in_query . ') ORDER BY FIND_IN_SET(id,"' . $in_query_ids .'")
Знакомо, еще вот такой фигней приходится заниматься, когда число параметров для IN меняется. Это так выдираются результаты поиска сфинкса из базы. Лучшего решения не нашел.
Я делал str_repeat('?,', count($args)) (с отбрасыванием лишней запятой) и потом просто передавал массив вариантов как параметр. Но тоже не совсем, как мне кажется...
Не от "шаловливых игрунков", а по логике работы подготовленных выражений. На этапе подготовки составляется план выполнения запроса, а как его составишь, если неизвестно, о каких таблицах идёт речь?
function showText($text)
{
return stripslashes($text);
}
Заметьте какая колоссальная разница! В целых 4 символа, бережёт себя...
:D:D:D
Когда они prepared statements использовать научатся?
А основная задача ps кажись ускорение выполнения однообразных запросов.
почитали бы. неужто не используете?
вообще-то prepared statements эффективно решают обе задачи
Но все равно не уверен, что если не использовать placeholders, а в подготавливаемом запросе интерполировать какую-нить переменную извне, то есть подготовить запрос с инъекцией.
Знакомо, еще вот такой фигней приходится заниматься, когда число параметров для IN меняется. Это так выдираются результаты поиска сфинкса из базы. Лучшего решения не нашел.