php pdo

Решил сделать драйвер БД через PDO. С mydql напрямую все просто и однозначно, но не с PDO.
Возникло пару вопросов.

Драйвер должен состоять всего из 4-х ф-й : select, insert, update, delete. Логика их работы не имеет значения. Вызов просто $this->db->select(); в чем и профит.

У PDO есть ф-я query() которая просто для select и возвращает стейтмент, который можно потом fetch(). А что если в селекте есть параметры? Их же надо экранировать. Использовать sprintf() в связке с mysql_real_escape_string() когда речь идет о PDO не кошерно.

Сначала я написал ф-ю

И завис. Как же быть с параметрами? Для экранирования в PDO используется ф-я prepare(), куда передается sql запрос с параметрами WHERE например ‘id = :id ‘. Далее делаем bindParam(‘:id’, $my_id); и выполняем execute().
Хорошо, можно переписать мою ф-ю иначе:

Но тогда надо помнить всегда про PDO, передавать sql в формате типа ‘:id’ и параметры array( “id” => $id);
Есть ли какое-то более элегантное решение?

И что делать с запросами Insert и Update где я хочу узнать кол-во измененных столбцов? execute() возвращает true или false.
Можно использовать exec() но снова – как тогда быть с параметрами?

Автор 27 Апрель 2011 | Дмитрий Андреев, собственно я спер у него.

На днях решил разобраться с php PDO. Это интересно и необходимо изучать новые технологии. Русской документации нигде не нашел, потому и решил выложить. Надеюсь эта статья будет Вам интересна.

Читать далее

Работаю над очередным проектом.

Это мой второй проект именно для работы. Первый был крупнее и как обычно “первый блин комом”. Там я не заморачивался над правилами программирования, а писал все в куче (php, хтмл, яваскрипт). Так же было очень мало опыта и многое изучал на лету. Сейчас немного подрос и решил писать по все правилам с OOP и MVC.

Так вот в процессе работы возник вопрос.. и я задал его в 4 сообщества контакте.

Читать далее

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

Тут думаю все понятно. Название плагина, адрес плагина для скачивания, описание, автор, сайт автора, версия, стабильная версия, лицензия.

Читать далее

В процессе создания плагина я ставлю перед собой несколько целей:

  • Сделать импорт постов с Liveinternet. Это главное.
  • Изучить лучше WordPress, научиться писать плагины под этот движок.

При удачном стечении обстоятельств :) ко мне в руки попал li.ru импортер для старой версии WordPress до 3-й, который не работал в новой версии. Его я использую для своих целей. Приступим…

Читать далее

Недавно я переносил записи со всех своих старых блогов сюда, на wordpress. Были затронуты Liveinternet, Livejournal, Blogger.. Так же я обновился до последней версии WordPress. Для последних двух есть импортеры в стандартной поставке, а вот с Liveinternet все сложнее. Это чисто русский блог и конечно импорт с него не реализован официально.

Пришлось делать свой плагин.

Читать далее

Ну а теперь расскажу, что произошло за тот период, пока я не писал. Уже вроде больше месяца прошло. Веду дневник так же неаккуратно, как всегда, но теперь то хоть будет что писать в рубрики, которые я задал еще с создания – php,mysql,linux,html css. Так же думаю надо добавить javascript и всякие плюшки типа API Yandex и jQuery, т.к. я это все использую и уже имею кое-какой опыт.

Где использую? :)

Читать далее

Ставим wget:

cd /usr/ports/ftp/wget
make install clean

Стягиваем дистрибутив для 32 битной версии:

cd
wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-freebsd6.0-i386.tar.gz
tar -xf ZendOptimizer-3.3.9-freebsd6.0-i386.tar.gz
cd ZendOptimizer-3.3.9-freebsd6.0-i386
cp data/5_2_x_comp/ZendOptimizer.so /usr/local/lib/php/20060613

Читать далее