# Класс DatabaseShell

Реализуем оболочку для работы с базой данных. Такая оболочка позволит нам не писать сырые SQL запросы, а делать их средствами PHP. Зачастую это занимает гораздо меньше кода и проще в обслуживании.

Здесь следует сказать, что подобные оболочки для работы с базой зачастую занимают более `1000` строк. Мы не будем делать такого монстра, а просто реализуем некоторый упрощенный вариант, чтобы вы поняли принцип. Например, вот такой:

`<?php class DatabaseShell { private $link; public function __construct($host, $user, $password, $database) { $this->link = mysqli_connect($host, $user, $password, $database); mysqli_query($this->link, "SET NAMES 'utf8'"); } public function save($table, $data) { // сохраняет запись в базу } public function del($table, $id) { // удаляет запись по ее id } public function delAll($table, $ids) { // удаляет записи по их id } public function get($table, $id) { // получает одну запись по ее id } public function getAll($table, $ids) { // получает массив записей по их id } public function selectAll($table, $condition) { // получает массив записей по условию } } ?>`

Давайте посмотрим, как мы будем пользоваться нашим классом. Создаем объект для работы:

`<?php $db = new DatabaseShell('localhost', 'root', 'root', '', 'test'); ?>`

Сохраним нового юзера:

`<?php $db->save('users', ['name' => 'user1', 'age' => '23']); ?>`

Удалим юзера с id равным `3`:

`<?php $db->del('users', 3); ?>`

Удалим юзеров с заданными id:

`<?php $db->delAll('users', [1, 2, 3, 5]); ?>`

Получим юзера с id равным `3`:

`<?php $user = $db->get('users', 3); ?>`

Получим юзеров с заданными id:

`<?php $users = $db->getAll('users', [1, 2, 3, 5]); ?>`

Получим юзеров по условию:

`<?php $users = $db->getAll('users', 'where id >= 3'); ?>`

Реализуйте описанный класс `DatabaseShell`. Проверьте его работу.

←→
↑