Реализуем оболочку для работы с базой данных. Такая оболочка позволит нам не писать сырые 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
.
Проверьте его работу.