2013/09/04

dkLab


Рассказать хочу много всего, но самая большая находка за последнее время это старый сайт http://dklab.ru/, каждый на него заходил когда скачивал свой первый "Денвер".

На этом сайте зарыто много кошек и собак, тонны лапши и говно кода, а так же надежные библиотеки и хорошие советы, много не прикрытого хорошего it-юмора.

Начнем с самого простого, библиотека для работы с различными субд  dkLab.
Окунемся в прелести минуты на 2-3.

Основные возможности: все что вам нужно, если вы не извращенец.
Естественно свободный и открытый код, изменяйте, допиливайте свои решения, заглядывайте и учитесь.

Все что вам нужно будет знать для работы с этой библиотекой это

mixed connect(string $dsn)
Соединение с указанной СУБД, используя DSN.
mixed select(string $query [,$arg1...])
Выборка двумерного массива (список строк).
hash selectRow(string $query [,$arg1...])
Выборка однострочного результата запроса (одна строка).
array selectCol(string $query [,$arg1...])
Выборка одноколоночного результата запроса (один столбец).
scalar selectCell(string $query [,$arg1...])
Выборка скалярного результата запроса (одна ячейка).
mixed selectPage(int &$total, string $query [,$arg1...)
Выборка ограниченного двумерного массива с занесением общего числа записей в переменную.
mixed query(string $query [,$arg1...])
Вызов не-SELECT запроса; для автоинкрементных полей в INSERT-запросах возвращает ID вставленной записи.
mixed transaction([mixed $parameters])
Запускает новую транзакцию.
mixed commit() / mixed rollback()
Подтверждает/отменяет текущую транзакцию.


Вот и все чуть-чуть текста, научиться работать с ней 1 день потыкать.
Что мы выигрываем? Каждый из нас часто забывает самые простые вещи, как построить запрос,  синтаксис и каждый допускает ошибки. А так же кто из вас может поклясться в том, что проверяет каждую переменную, на все существующие типы и должным образом защищает функции от попадания туда лишних вещей. С этой библиотекой, трудов со всем, что я описал будет не меньше, но с бд вам будет общаться легче.

Отдохнули?

1) Если вы не читали мою воду, то вы наверно уже пол минуты смотрите на функции библиотеки, тогда смело берите её, кто еще с ней не работал и пробуйте.
2) Вы читаете воду и вас нужно заинтересовать, первым делом избавляемся от практически всех видов атак, мы фильтруем информацию при записи в базу, а так же когда её достаем.
3) Больше вам не будут бить по рукам за SELECT (*) так как каждая функция приспособлена для выполнения в конкретных ситуациях.

Ну пару строк я отписал, скорее даже для себя. Всем спасибо