goDB 1.3: Транзакции и все, все, все

goDB 1.3: новый говнокод и ебическая сила природы в одном флаконе. Домохозяйки выбирают goDB.

В новой версии при сохранении совместимости с mysqli добавлены надстройки по следующим пунктам:

Транзакции

  1. Станартная схема: BEGIN + COMMIT(ROLLBACK)
  2. Вложенные транзакции, где транзакции нижних уровней не знают о верхних.
  3. Различные способы отката из вложенных транзакций и его обработки.
  4. Выполнение функций в транзакциях

Мультизапросы

  1. Мультизапросы по goDB-схеме: с шаблонами, данными и форматами разбора.
  2. Получение всех результатов сразу или получение только нужных
  3. Различные способы формирования мультизапроса
  4. Обработка ошибок на основе исключений
  5. Не нужно думать о выборке всех результатов и их очистке
  6. Мультизапросы в транзакциях и без них.

Подготовленные выражения

  1. goDB-схема (шаблон, данные, формат результата) вместо bind_param, bind_result
  2. Полная поддержка форматов представления результатов
  3. Обработка ошибок на основе исключений.
  4. Создание и выполнение подготовленного выражения одним запросов.
  5. Кэширование подготовленных выражений.
  6. Именованные подготовленные выражения.

Кроме того, добавлены следующие возможности:

Объект-ссылка

Объект ссылка разделяет подключение с основным объектом, но может иметь другие настройки (префикс, отладка, декоратор запросов).

По мелочи

Формат разбора bool.

Метод __invoke().
В PHP 5.3 запросы можно выполнять прямо так: $one = $db('SELECT 1', null, 'el');

Методы getPrefix(), getDebug() и т.д.

Реструктуризация юнит-тестов: теперь вместо одного файла папка с тестами.

@todo

Все предложения пишите на форуме или присылайте на мыло.

В ближайшее время возможно следующее:

  1. Макроподстановки
  2. Разбиение godb.php на несколько файлов
  3. Формат разбора: объект для разбора :)
  4. Начало работы над goDB 2.0
  5. Нормальные шрифты и цвета для доки

Взять себе

Взять себе
goDB 1.3.0 (zip, 31K)

goDB 1.2.2

Ничто не заставляет делать какое-то дело, как необходимость делать другие более важные дела.
Поэтому goDB продолжает радовать нас новыми версиями.

В новой версии (1.2.2):

Плейсхолдер ?bool: вставка значения для столбца типа BOOL.

Формат представления результата kassoc и его подвид kassoc:$col.

Формат же vars теперь позволяет выборку по одному столбцу: его значение станет как ключём массива, так и его элементом.

Плюс добавлены исключения goDBExceptionFetchUnknown и goDBExceptionFetchUnexpected.
Также местами переписан код.

Сам класс теперь можно просмотреть прямо на сайте не скачивая архивов.

Ну и конечно, можно всё-таки скачать архив (ZIP, 5K)

goDB 1.2

Наконец, впервые за несколько лет, обновил документацию по goDB. Она по-прежнему убогонькая и пафосная, но теперь полностью описаны все новые возможности.

Ну и, так как просто описывать старьё скучно, выпустил новую версию.

Длинные плейсхолдеры

Для всех плейсхолдеров теперь есть «длинные» синонимы:

$db->query('INSERT INTO `table` SET ?set', array($set));
$db->query('INSERT INTO `table` VALUES ?values', array($values));
...

Полный список в документации.

Именованные плейсхолдеры

$data = array(
	'one'   => 'Раз',
	'two'   => 'Два',
	'three' => 'Три',
);
$pattern = 'SELECT * FROM `table` WHERE `one`=?:one AND `two`=?:two OR `three`=?:three ORDER BY ?:one ASC';

Можно комбинировать тип плейсхолдера и имя: ?set:name.

В одном запросе использовать простые и именованные плейсхолдеры нельзя.

Подробнее в документации.

Ещё по-немногу

Добавлены новые параметры конфигурации charset и link:

$config = array(
	'host' => 'localhost',
	...
	'charset' => 'utf8',
);

Не нужно при подключении вызывать SET NAMES. Особенно удобно для отложенных подключений.

link позволяет сделать ссылку на другую базу. Подробнее в разделе о пространстве имён.

Также несколько изменена иерархия подключений.

Несовместимости

При правильном использовании несовместимостей нет. А так, немного есть.

Скачать последнюю версию (ZIP)

goDB 1.1.3

После года разгильдяйничества, решил снова заняться своей библиотечкой для работы с MySQL.

Изменения в версии 1.1.3 незначительны, но, надеюсь, что вскоре будет что-нибудь поинтереснее.

Остальной текст под катом