Skip to content

Latest commit

 

History

History
308 lines (244 loc) · 7.34 KB

HelpRU.md

File metadata and controls

308 lines (244 loc) · 7.34 KB

Безопасный и простой PDO класс для работы с базой данных. Русская документация.


PHP: PDO Db Wrapper with prepared statements

Other links

English

Смотрите Английскую документацию чтобы получить больше информации

Homepage

Вернуться назад на главную страницу

Содержание

Installation
Initialization
Select
Select Join
Insert
Insert Multiple
Last Insert Id
Update
Delete
Create Database
Create Table
Optimize Table
Truncate Table
Drop Database
Drop Table

Installation

  • Подключите Db.class.php к вашему проекту следующим образом:
require_once 'Db.class.php';

или же вы можете использовать автозагрузку:

spl_autoload_extensions('.class.php');
spl_autoload_register();
  • Подключите пространство имен в файл где вы используете класс:
use lib\Db;

Initialization

Простая инициализация: создаем подключение к базе с кодировкой utf8 по умолчанию:

// вызываем конструктор по умолчанию (необходимо сперва изменить агрументы функций в 'конструкторе' в самом классе):
$db = new Db();

Расширенная инициализация:

// вызываем конструктор с параметрами:
$db = new Db('driver', 'host', 'username', 'password', 'databaseName', 'charset', 'prefix');

Select

выбираем все из таблицы table1

$db->select('table1');

выбираем 1 строку из таблицы table1 где id == 1

$db->select('table1', ['id' => 1]);

выбираем колонки col1 и col2 из таблицы table1

$db->select(['table1', ['col1', 'col2']]);

выбираем колонки col1 и col2 из таблицы table1 с лимтом от 0 до 3 с сортировкой по возростанию

$db->select(['table1', ['col1', 'col2']], '', '3', '0', ['id' => 'ASC']);
Примеры использования
// выбираем 1 материал у которого id == 1
$article = $db->select('article', ['id' => 1])) 
// отображаем
foreach ($article as $k => $v)
{
    echo '<p>' . $k . ': ' . $v . '</p>';
}

// выбираем колонки title и content из таблицы article
$selectCustomCols = $db->select(['article', ['title', 'content']]);
// отображаем
foreach ($selectCustomCols as $rows)
{
    echo '<p>';
    foreach ($rows as $col_k => $col_v)
    {
         echo $col_k . ': ' . $col_v . '<br>';
    }
    echo '</p>';
}

Select Join

выбираем данные из таблиц articles, authors, tags

$articles = $db->selectJoin([
	'articles' => [
		'id AS artid', 'title AS atrtitle', 'content', 'image', 'author_id', 'published'
	],
	'authors' => [
		'id AS autid', 'name'
	],
	'tags' => [
		'id AS tgid', 'title AS tgtitle'
	]
], ['authors' => [
        'articles.author_id', 'authors.id'
    ],
    'tags' => [
        'tags.article_id', 'tags.id'
    ]
]);
// проверяем что получили
var_dump($articles);die;

во избежание конфликтов для колонок id и title задаем псевдонимы

Insert

вставка строки в таблицу table1 с колонками id, title, content

$db->insert('table1', [
        'id' => null,
        'title' => 'Заголовок 1',
        'content' => 'Тут текст записи № 1.'
    ]
);

Insert Multiple

вставка нескольких строк (если id PRIMARY KEY - можно использовать null)

$db->insertMultiple(
        'table1',
        ['id, title, content'],
        [
            [1, 'Заголовок 1', 'Текст статьи 1'],
            [2, 'Заголовок 2', 'Текст статьи 2']
        ]
);

Last Insert Id

метод возвращает последний id запроса, что был выполнен ранее

$lastInsertId = $db->lastInsertId();

Update

обновление колонки col1 в таблице table1

$db->update('table1', ['col1' => 'Материал 1 (обновленный)'], ['id' => 9]);

обновление всех колонок col1 в таблице table1 где значение == Заголовок № 10

$db->update('table1', ['col1' => 'Заголовок № 10++ (updated)'], ['col1' => 'Заголовок № 10']);
Пример использования
$updateRow = $db->update('article', ['title' => 'Материал 1 (это обновленный текст)'], ['id' => 10]);
if ($updateRow) {
    echo 'updated ' . $updateRow . ' row(s) successfully!';
} else {
    echo 'update failed!';
}

Delete

$db->delete('table1', ['id' => 1]);
Пример использования
if($db->delete('article', ['id' => 1])) 
{
    echo 'Row deleted successfully!';
}

Create Database

$db->createDatabase('database1');
Пример использования
if($db->createDatabase('articles')) 
{
    echo 'Database articles created successfully!';
}

Create Table

если мы напишем так:

$db->createTable('users', [
        'firstName' => 'VARCHAR(255) NOT NULL',
        'lastName' => 'VARCHAR(255) NOT NULL',
        'email' => 'VARCHAR(255) NOT NULL'
    ]
);

такой запрос в итоге выйдет:

CREATE TABLE IF NOT EXISTS users (
    id INT(11) NOT NULL AUTO_INCREMENT,
    firstName VARCHAR(255) NOT NULL,
    lastName VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Optimize Table

$db->optimizeTable('table1');
Пример использования
if($db->optimizeTable('article')) 
{
    echo 'Table article successfully optimized!';
}

Truncate Table

$db->truncateTable('table1');
Пример использования
if($db->truncateTable('article')) 
{
    echo 'Table article successfully cleared!';
}

Drop Database

$db->dropDatabase('database1');
Пример использования
if($db->dropDatabase('articles')) 
{
    echo 'Table articles successfully deleted!';
}

Drop Table

$db->dropTable('table1');
Пример использования
if($db->dropTable('article')) 
{
    echo 'Table article successfully deleted!';
}

Наверх