Класс 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. Проверьте его работу.