В это статье будет рассказываться про PHP библиотеку RedBean для работы с базой данных, надо сказать что она сделана на базе PDO, за счёт чего она может работать не только с MySQL, но и с другими БД.
По сути эта статья не большое продолжение нашего учебника про работу с базой данных на PHP, поэтому рекомендую сначала прочитать его
(Ссылка на учебник).
Установка и подключение RedBean:
Скачать библиотеку вы можете с официального сайта, выбираете для какой БД вам надо или скачиваем для всех.
Перемешаем файл из архива и подключаем его куда надо, и пишем проверку подключения БД.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // Подключаем библиотеку require 'rb.php'; // Подключение БД R::setup('mysql:host=localhost;dbname=test', 'root', ''); // Проверка подключения БД if ( !R::testConnection() ) { // Выводить если БД не подключена exit ('Нет соединения с базой данных'); } // Выводится если БД подключилось echo 'База данных подключена'; |
В принципе тут код не сложный, на этом подключение закончилось.
С Помощью R::close()
, можно закрыть подключение.
Заморозка:
Это механизм, который позволяет не создавать таблицы на ходу, в том дела, когда, к примеру, вы добавляете новую данную в таблицу, которая не существует, она автоматически создаётся, что бы этого не было, существует заморозка.
Вот как сделать заморозку.
1 | R::freeze(true); |
Основы работы с RedBean:
Для начала рассмотрим простые запрос, который может отправлять любой зная SQL.
1 2 3 4 | $id = 2; $user = R::exec('SELECT * FROM `users` WHERE `id`= ?', array( $id )); |
Как видите всё очень просто, похоже как мы отправляли запрос во функции с зашитой от SQL инъекций, которую делали с помощью PDO.
Но у такого способа есть один не достаток, вы не сможете увидеть что вы получили, если используйте команду как в нашем случае, для получения данных из БД.
Операции CRUD:
Вообще для того чтобы выполнять различные операции в RedBean есть понятие CRUD (Create, Read, Update, Delete), или на русском, Создать, Прочитать, Обновить, Удалить,
Также стоит упомянуть что библиотека создают таблицы на ходу, поэтому вам даже не надо заходить в PhpMyAdmin, что бы создать таблицу.
Создание данных:
Создание и добавление данных в БД очень простое, вам даже не надо знать SQL.
1 2 3 4 5 6 7 8 9 | // Берём или создаём таблицу $user = R::dispense('users'); $user -> name = 'Vasa'; // Создаём имя $user -> surname = 'Pupkin'; // Создаём фамилию $user -> password = '1234567890'; // Создаём пароль // Отправляем созданного пользователя в БД R::store($user); |
Логика программы очень проста, мы берём таблицу и добавляем данные о пользователи и дальше через R::store()
отправляем запрос, что создан пользователь, вот результат.
Получение данных:
Для получения данных есть куча методов, покажу самые главный, это R::load()
, вы сможете получать данные по айдишнику.
1 2 3 4 | // Берём пользователя по id $user = R::load('users', 2); echo $user -> name; // Выводим имя echo $user['name']; // Выводим имя (PHP 7) |
Как видите всё просто, просто берём данную по айдишник, также это ещё не всё, можно отметить ещё три подобных метода.
- R::loadAll(table, ids) — Такой же как и R::load, но в качестве второго параметра передаётся массив с id, возвращает массив этих данных;
- R::find(table, sql) — Находит данные по SQL условию, SQL условие пишется в качестве второго параметра, возвращает первое попавшейся совпадение;
- R::findAll(table, sql) — Точно такой же как и R::find(table, sql), только возвращает массив со всеми совпадениями;
Изменение данных:
Изменение данных работает по принципу, получи и измени, то есть сначала мы получаем данные как из предыдущего раздела, потом их изменяем и вставляем в таблицу.
1 2 3 4 5 6 7 8 9 | // Получаем пользователя $user = R::load('users', 1); // Меняем имя $user -> name = 'Igor'; Загружаем обратно с изменениями R::store($user); // Выводим на экран echo $user -> name; |
Как видите тут всё просто, даже нечего рассказывать.
Удаление данных:
Удаление очень простое, вам надо только получить объект и удалить его.
1 2 | $user = R::load('users', 4); // Загружаем R::trash($user); // Удаляем |
Также ещё можно очистить всё таблицу.
1 | R::wipe('table'); // Удаляем все данные в таблице |
Вывод:
Как видите библиотека PHP RedBean очень сильно упрощает взаимодействие с базой данных, поэтому рекомендую её использовать.