Download the PHP package programulin/database without Composer
On this page you can find all versions of the php package programulin/database. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package database
Библиотека для работы с MySQL.
Библиотека включает в себя 3 компонента:
1) Плейсхолдеры:
2) Функции для быстрого получения данных в нужном виде: selectRow, selectOne, selectColumn, selectKeyPair и т.п.
3) Простенькая реализация ActiveRecord.
Требования:
- PHP 5.4+
- PDO
- MySQL
Начало работы
1) Устанавливаем c помощью Composer:
2) Указываем реквизиты доступа к одной или нескольким БД:
3) При необходимости передаём фабричный метод генерации новых объектов:
4) Получаем объект соединения с БД:
Подключение к БД происходит при выполнении 1-го запроса. Т.е. вызов conn() не приводит к подключению к базе.
Плейсхолдеры
Первым параметром передаём SQL-запрос:
Если в SQL-запросе есть плейсхолдеры, вторым параметром передаём массив значений, которые нужно подставить:
:v :s :b :i :d
Перед вставкой значения можно привести его к нужному типу:
- :s (string) - приводит к строке
- :b (bool) - приводит к булеву типу
- :i (int) - приводит к целому числу
- :d (double) - приводит к дробному числу
- :v (value) - не изменяет тип
:name, names
С помощью :name можно подставить название таблицы или столбца. :names подставляет несколько названий через запятую:
Через точку можно указать название базы данных, таблицы, столбца:
:set
С помощью :set можно подставить в запрос целый массив:
:where
С помощью :where можно сделать поиск с динамическим количеством параметров:
Первым параметром передаётся название поля, вторым действие (>=, >, <=, <, =, !=, like, between, in), третьим значения.
Для between третьим параметром необходимо передать массив из 2 значений, для in - массив любого размера.
Если передать пустой массив, ключевое слово WHERE не будет добавлено в SQL-запрос. Следующие запросы приведут к одинаковому результату:
:in
С помощью :in можно подставить массив значений в оператор IN:
Если в качестве значения передать пустоту (в том числе пустой массив), в SQL запросе это отобразится как IN(false) и условие не будет обработано. Следующие запросы приведут к одинаковому результату:
:limit
Лимит можно указывать с помощью плейсхолдеров :i и :limit.
При передаче пустоты, в том числе массива с нулевыми значениями, LIMIT не добавится в SQL-запрос. Следующие запросы приведут к одинаковому результату:
Методы
select
Получение множества строк в виде ассоциативного массива:
selectRow
Получение одной записи, либо null:
selectOne
Получение 1-го столбца 1-ой строки:
selectKeyPair
Получение массива, в котором первая колонка - ключи, вторая - значения:
На выходе будет нечто вроде:
selectGroup
Получение записей, сгруппированных по первому столбцу:
На выходе будет нечто вроде:
В этом примере все записи разбиты на 2 подмассива, со status = 1 и status = 0.
selectColumn
Получение всех значений одного столбца.
На выходе:
query
Выполнение запроса и получение экземпляра PDOStatement:
update, delete
Выполнение запроса и получение количества затронутых строк:
insert
Выполнение INSERT-запроса и получение последнего инкрементального id:
pdo
Получение исходного экземпляра PDO:
lastInsertId
Получение последнего автоинкрементального id:
connect
Подключение/переподключение к БД:
close
Уничтожение экземпляра PDO:
ActiveRecord
Класс модели должен наследоваться от Programulin\Database\Record. По-умолчанию настройки класса принимают следующий вид:
- Название таблицы берётся из последнего элемента пространства имён в нижнем регистре(для класса App\Models\Product_Image таблица будет product_image),
- Первичный ключ - id,
- Подключение к БД - то, что было указано в конфиге по-умолчанию.
Все эти настройки можно менять:
Поиск записей.
Создание, изменение и удаление записей.
Управление параметрами.
События сохранения и удаления записи.
Вы можете переопределить методы beforeSave(), beforeDelete() и afterSave() для добавления валидации и прочего функционала: