Безопасный и простой PDO класс для работы с базой данных. Русская документация.
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
- Подключите Db.class.php к вашему проекту следующим образом:
require_once 'Db.class.php';
или же вы можете использовать автозагрузку:
spl_autoload_extensions('.class.php');
spl_autoload_register();
- Подключите пространство имен в файл где вы используете класс:
use lib\Db;
Простая инициализация: создаем подключение к базе с кодировкой utf8 по умолчанию:
// вызываем конструктор по умолчанию (необходимо сперва изменить агрументы функций в 'конструкторе' в самом классе):
$db = new Db();
Расширенная инициализация:
// вызываем конструктор с параметрами:
$db = new Db('driver', 'host', 'username', 'password', 'databaseName', 'charset', 'prefix');
выбираем все из таблицы 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>';
}
выбираем данные из таблиц 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 задаем псевдонимы
вставка строки в таблицу table1 с колонками id, title, content
$db->insert('table1', [
'id' => null,
'title' => 'Заголовок 1',
'content' => 'Тут текст записи № 1.'
]
);
вставка нескольких строк (если id PRIMARY KEY - можно использовать null)
$db->insertMultiple(
'table1',
['id, title, content'],
[
[1, 'Заголовок 1', 'Текст статьи 1'],
[2, 'Заголовок 2', 'Текст статьи 2']
]
);
метод возвращает последний id запроса, что был выполнен ранее
$lastInsertId = $db->lastInsertId();
обновление колонки 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!';
}
$db->delete('table1', ['id' => 1]);
if($db->delete('article', ['id' => 1]))
{
echo 'Row deleted successfully!';
}
$db->createDatabase('database1');
if($db->createDatabase('articles'))
{
echo 'Database articles created successfully!';
}
если мы напишем так:
$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;
$db->optimizeTable('table1');
if($db->optimizeTable('article'))
{
echo 'Table article successfully optimized!';
}
$db->truncateTable('table1');
if($db->truncateTable('article'))
{
echo 'Table article successfully cleared!';
}
$db->dropDatabase('database1');
if($db->dropDatabase('articles'))
{
echo 'Table articles successfully deleted!';
}
$db->dropTable('table1');
if($db->dropTable('article'))
{
echo 'Table article successfully deleted!';
}