Сделали социальную сеть по Ростехнадзору на основе 3-51 за 2 недели. Ресурс создан для общения экспертов по промышленной безопасности, работников Ростехнадзора и МЧС РФ, поставщиков оборудования и всех, кто интересуется вопросами промышленной безопасности.
Теперь вкратце на чем работает сайт:
PHP (ООП)
MySQL (InnoDB)
Perl – отправка почты
шаблонизатор Blitz
библиотека DbSimple – интерфейс к БД
библиотека JsHttpRequest – Ajax (в будущем перейдем на jQuery)
DbSimple - библиотека, реализующая единый интерфейс доступа к разным СУБД и включает в себя некоторое количество улучшений, упрощающих работу с СУБД.
Основные возможности
Поддержка PHP 4 и 5, СУБД: MySQL, PostgreSQL и InterBase/FireBird.
Простой и лаконичный интерфейс (см. примеры ниже).
Функции непосредственной выборки: всего результата, строки, столбца, ячейки, ассоциативного массива, многомерного массива, связанного дерева.
Поддержка различных видов placeholder-ов (параметров запроса): списковый, ассоциативный, идентификаторный
Код библиотеки весьма компактен: один файл - базовый класс, один файл - драйвер конкретной СУБД.
и многое другое!
Основным недостатком традиционного подхода является разделение операций "выполнение запроса" и "получение результата запроса". Например необходимо получить список email пользователей со статусом 2
Традиционный подход
$rusult = $mysqli->query('SELECT email FROM user WHERE status='.$status);
$email_array = array();
while ($email = $rusult->fetch_assoc()) {
$email_array = $email['email'];
}
DbSimple
$email_array = $DB->selectCol('SELECT email FROM user WHERE status=?d', $status);
'SELECT email FROM user WHERE status='.$status - уязвим для sql-иньекций, если не проверить переменую $status
'SELECT email FROM user WHERE status=?d' - ?d это как раз и есть placeholder. Вместо него подставляется $status как целое число. Нам не нужно заморачиваться с проверкой - это сделает библиотека.
Это далеко не все возможности DbSimple. Более подробно в официальной документации
p.s. Около года использую эту библиотеку. Очень доволен