Обновить
13
0
Алексей@zBit

Full stack web developer

Отправить сообщение
>> Это не извращение, а как раз очень правильный подход.
Значит я на правильном пути. А извращением я это назвал исходя из количества кода. Чем больше кода — тем больше извращения. Я не говорю, что всегда так. Я так выразился только для данного контекста.
>> ORDER BY `'comments'`
Когда читал документацию заметил, что экранирует всё лишнее, но упустил «обрамляет кавычками, если это нужно». Косяк, серьёзный, согласен. Не заметил.
Заметил ещё одну ошибку.
$order = PDO::quote($order); // так работать не будет
$order = $db->quote($order); // а так будет
Да и вообще тут надо было просто использовать mysql_escape_string.

>> IN('1,2,3')
Тут тоже вижу выход. Только он увеличит реализацию ещё на несколько строчек. Вставить в цикле именованные плейсхолдеры с итеративным индексом и потом в цикле прогнать bindParam по этим плейсхолдерам.

Позвольте, я немного оправдаюсь)
На PDO ещё не приходилось так извращаться над запросами. Обычно решаемые мною задачи более тривиальны.
Но, чтобы подставить в конец строки правильный order by для выбранной пользователем сортировки, можно использовать массив. Количество возможных полей, ведь, ограничено, поэтому под каждое возможно поле создаём значение под нужным индексом, можно даже числовым и просто сравниваем полученную цифру из запроса пользователя с индексами в массивах, если есть такая, то подставляем название поля в запрос. Согласен, извращение, за-то какая защищённость!)

Да, и ещё, БД простила мне запрос с ORDER BY '`comments`' и выполнила его как надо. Я удивлён.
Что-то не вижу) Какие, не подскажете?)
Чёрт возьми. Сам же ошибку допустил.
$sth->bindParam(':in', implode(',', $in), PDO::PARAM_STR);
Я бы сделал вот так:

$order = PDO::quote($order);
$sth = $db->prepare(«SELECT * FROM `news` WHERE `theme` IN(:in) ORDER BY `$order`»);
$sth->bindParam(':in', implode(',', (int) $in), PDO::PARAM_STR);
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);

Есть и другие варианты, но этот самый безопасный.
Меньше кода — не значит лучше, качественнее или безопаснее. Как вы думаете, какой вариант будет работать быстрее, с вашими классами или с PDO?

P.S.: К сожалению, не имею возможности оформлять код красиво в комментариях из-за сами знаете чего.
Сам хотел попросить вас привести пример, когда что-то можно сделать вашим классом и что нельзя/сложно сделать через PDO.
Я когда-то сам пользовался классами DbSimple, но потом узрел всю прелесть работы с PDO и теперь все новые проекты я делаю именно с PDO. Мне даже кажется, что PDO значительно более гибкая, чем DbSimple. Да и PDO внушает больше доверия, чем всё остальное.
Хотя соглашусь с тем, что по объёму кода DbSimple немного выигрывает, его часто необходимо меньше, чем в PDO.
Мне кажется или время отклика тачскрина на этом устройсте стремится к тому, что можно наблюдать в продуктах от Apple?
К сожалению, вынужден согласиться, т.к. не могу привести ни один пример из своей жизни, когда было бы иначе…
>> Если таксист говорит, что «Ну тут примерно крон 200 получится», то может выйти и 150.
Ох, чувствую, сейчас я напишу много букв…

Где-то год назад читал книгу, называется «Экономика впечатлений». Так там это называли положительным ожиданием впечатления. Смысл в том, что когда тебе говорят, что получится около 200 крон, то ты ожидаешь получить счёт в 200 крон, не меньше. А когда получается меньше того, что ты ожидал, то возникает как раз это самое положительное впечатление. Это улучшает впечатление покупателя/потребителя и мотивирует его покупать или пользоваться услугами чаще или только у той компании, которая создаст лучшее впечатление.
Ещё в книге описывались другие техники создания впечатлений на реальных примерах, в основном это были примеры из сферы услуг.

Я в последнее время часто стал прибегать к такому приёму, но чаще для себя самого. Например, надо было купить ноут. Сначала выбираю самые дорогие магазины, примечаю подходящие более-менее по цене и ТХ ноуты, затем иду смотреть аналогичные модели на сайтах более дешевых магазинов. Согласен, я совершаю не мало лишних действий, зато с последней покупки у меня осталось приятное впечатление, т.к. я знаю, что сэкономил около 4-х тыс. руб.
К сожалению, у нас в России, подобной практикой практически никто не занимается и поэтому приходится часто создавать это впечатление самому.

P.S.: А перед Новым Годом у нас в России, почему-то, все стараются наоборот создать отрицательное впечатление. Отмечал праздник в глубинке и такси обычно стоило 70-80 руб. по городу. Заказал такси, девушка по телефону предупредила, что в связи с праздниками стоимость поездки будет ровно в 2 раза дороже. Ну я и ожидал, что стоимость будет 140-160 руб. Какого было моё удивление, когда таксист назвал сумму в 200 руб. Это несколько больше 160 руб. и я хотел уже начать скандалить, но т.к. у меня было праздничное настроение, то я не хотел его портить ни себе, ни водителю, ни другим пассажирам. Вот такой вот подарок на Новый год.
Так что, я думаю, что подобные вещи это вопрос воспитания и понимания этих самых впечатлений. Вот, если бы девушка по телефону сказала мне, что сегодня цены в 2.5 раза выше, а на деле цена оказалась бы ниже, чем я ожидал, то негативного осадка бы не было. Да и, думаю, водителю было бы приятнее называть цену, которая оказалась ниже, чем я ожидал. Ведь не все спускают такие финты ушами на тормазах как это сделал я и, как мне кажется, водитель не сильно хотел бы скандалить и доказывать свою правоту, торговаться и портить тем самым себе настроение.

Прочитав ваш рассказ ещё раз убедился, что есть страны где уровень адекватности на порядки выше, чем то, с чем я сталкиваюсь каждый день.
Честно, большое вам спасибо.
Пробовал! И параллельно делал аналогичные действия на iPhone и на втором время отклика было ниже, к сожалению. Хотя по ТХ вроде Nexus сильнее, чем iPhone. Осмелюсь предположить, что виной всему мега-универсальность Андроида, которая позволяет запустить сие чудо даже на пылесосе.
Если в Ubuntu сделают скорость отклика тачскрина как на яблочных устройствах, то я, пожалуй, куплю Galaxy Nexus только за тем, чтобы попробовать сие чудо)
Жду дальнейших новостей и видео.
Я, конечно, не супер-гуру и в анкетах на собеседованиях напротив jQuery ставил всегда 6/10. Но данная статья показалась мне невероятно познавательной. Например, я не знал, что $(document).ready( callback ) = $( callback ). Вернее я знал как работает короткий вариант, но не думал, что длинный вариант и короткий просто напросто идентичны! Сейчас начал более подробно разбираться в документации jQuery.
Знания — самый лучший подарок на НГ)
И пользуясь случаем, хочу поздравить всех уже почти с наступившем Новым Годом!)
Надеюсь в следущем году смогу с уверенностью ставить 7-ку на против пункта с jQuery.
А дорогой телескоп я и не потяну финансово. Да и, как мне кажется, лучше всегда начинать с малого.
Жду продолжение)
А вообще возникло жуткое желание приобрести телеском и начать подглядывать за ближайшими космическими объектами.
Всё равно дорого. Мне не осилить. Придётся ждать пока они ещё подешевеют…
А я думал, что десктопная модель стоит в пределах $3-5K… Уж было начал думать над тем, чтобы копить на это чудо деньги, но, видимо, пока не судьба…
Весь сайт objet.com облазил и никак не могу найти цены. Кто-нибудь знает сколько стоят эти принтеры?)
Почему-то я сначала подумал, что именно так сервис и работает, но теперь он похоже вообще никак не работает)

Информация

В рейтинге
Не участвует
Откуда
Казань, Татарстан, Россия
Дата рождения
Зарегистрирован
Активность