pandcar/base

Library for DB

2.3.3 2018-09-27 11:28 UTC

This package is auto-updated.

Last update: 2025-03-28 03:01:06 UTC


README

Установка

Для установки Base выполните команду:

composer require pandcar/base

Cтарт

require 'vendor/autoload.php';

// Включение отладки
// 0 - выключено, 1 - только ошибки, 2 - полный отчёт
Base::$debug = 2;

$data = [
   'host' => 'localhost',
   'user' => 'root',
   'pass' => '',
   'base' => 'site-db',
   'charset' => 'utf8'
];

$pdo = Base::connect('mysql', $data) or die('Нет подключения.');

SELECT

Выбор одной строки

// Самый короткий способ, по её id
$row = Base::get('table', 1);

// Массивом, равенство через and
$row = Base::get('table', [
   'id' => 1,
   'login' => $login
]);

// Более сложная логика
$row = Base::get('table', 'id = 1 or login = :login', [
   'login' => $login
]);

// Запросом с указанием типа
$row = Base::query('SELECT * FROM `table` WHERE `id` = :id AND `login` = :login LIMIT 1', [
   'id/int' => 1,
   'login' => $login
]);

Другие результаты

// Получение всех строк в виде массива
$array = Base::query(
    'SELECT * FROM `table` WHERE `id` > :id', [
       'id' => 5
    ],
    'arr'
);

// Получение всех строк в виде генератора (в случаях когда не нужно грузить все данные разом в память)
$generator = Base::query(
    'SELECT * FROM `table` WHERE `id` > :id', [
       'id' => 5
    ],
    'gen'
);

// Количество строк (короткий способ)
$count = Base::count('table', 'id > :id', [
   'id' => 5
]);

// Количество строк запросом
$count = Base::query('SELECT COUNT(`id`) FROM `table` WHERE `id` > :id', [
   'id' => 5,
]);

UPDATE

// Короткий способ, там где id = 5
$bool = Base::update('table', 5, [
    'email' => $new_email,
    'pass' => $new_pass
]);

// Другие условия
$bool = Base::update('table', [
    'login' => $login
], [
    'email' => $new_email,
    'pass' => $new_pass
]);

// Запросом
$bool = Base::query('UPDATE `table` SET `email` = :email, `pass` = :pass WHERE `login` = :login', [
    'email' => $new_email,
    'pass' => $new_pass,
    'login' => $login
]);

INSERT

// Короткий способ
$insert_id = Base::add('table', [
    'login' => $login,
    'pass' => $pass,
    'email' => $email
]);

// Запросом
$insert_id = Base::query('INSERT INTO `table` (`login`, `pass`, `email`) VALUES (:login, :pass, :email)', [
    'login' => $login,
    'pass' => $pass,
    'email' => $email
]);

DELETE

// Короткий способ, там где id = 5
$bool = Base::remove('table', 5);

// Тот же способ выбора как и у select