Найдены 4 записи с тэгом «PHP»

Мини-чатик в один файл на PHP, HTML, CSS и JS

01.05.2014 18:24
24
Вобщем дело было так - собрался с праздновать свой ДР, народ мол "давай список подарков и все такое, а то подарим тебе надувную бабу по умолчанию" :)

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

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

И вообще, программист я или где?

Скрипт для обновления 2GIS


Скрипт скачивает нужные карты городов с серверов 2gis без всякого их замороченного апдейтера. Особенно актуально для портабельной версии или для сервера.

Скрипт для обновления FlashPlayer-а


В который раз при обновлении FlashPlayer-а приходится лезть на сайт Adobe и бороться с их web-based установщиком. Надоело!

Свои SQL placeholder-ы

Вообще, плейсхолдеры - очень хорошая штука. Они позволяют избежать кучи ошибок и не дают создавать потенциально уязвимые запросы (для SQL инъекций) ну и плюсом являют собой синтаксический сахар, который помогает проще и быстрее работать с языком SQL.

Работа с плейсхолдерами обычно представляет собой нечто такое:
func( "select * from ? where `id`=?", "table1", 5 )

Внутри функции это развернется в:
select * from `table1` where `id`="5"

Всю работу по эскейпингу аргументов и заключение их в спецсимволы берет на себя как раз парсер плейсхолдеров.

Существуют так называемые "нативные" плейсхолдеры - они реализуются самой БД или драйвером БД и работают очень быстро, однако функционал их очень беден и работа отличается от БД к БД.

Я же расскажу здесь о "внешних" плейсхолдерах - т.е. реализуемых на стороне скриптового языка. Они чуть медленнее, так как обработка происходит в самом скрипте, но имеют на порядок больше функционал и независимы от БД.
В моем случае падение скорости совсем незначительное - используется обычное PCRE регулярное выражение для замены плейсхолдеров в строке и небольшая логика - в исходниках класса можно посмотреть.

Создать свои плейсхолдеры меня побудила статья про DBSimple от dkLab.
Там предлагались несколько плейсхолдеров, сильно облегчающих жизнь с SQL.
Идею и подход позаимствовал оттуда, а вот сами плейсхолдеры значительно изменил.