20250807
This commit is contained in:
@@ -112,25 +112,25 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
### 3. Транзакции
|
||||
|
||||
#### Создание транзакции (`InitTransaction()`)
|
||||
#### 3.1. Создание транзакции (`InitTransaction()`)
|
||||
|
||||
Начинает новую транзакцию в базе данных.
|
||||
|
||||
**Возвращаемое значение:** void.
|
||||
|
||||
#### Проверка существования транзакции (`InTransaction()`)
|
||||
#### 3.2. Проверка существования транзакции (`InTransaction()`)
|
||||
|
||||
Проверяет, активна ли транзакция.
|
||||
|
||||
**Возвращаемое значение:** true — транзакция активна, false — неактивна.
|
||||
|
||||
#### Фиксация транзакций (`Commit()`)
|
||||
#### 3.3. Фиксация транзакций (`Commit()`)
|
||||
|
||||
Фиксирует выполненную транзакцию.
|
||||
|
||||
**Возвращаемое значение:** void.
|
||||
|
||||
#### Откат транзакций (`RollBack()`)
|
||||
#### 3.4. Откат транзакций (`RollBack()`)
|
||||
|
||||
Отменяет активные изменения транзакции.
|
||||
|
||||
@@ -138,7 +138,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
### 4. Выполнение запросов
|
||||
|
||||
#### Произвольный запрос (`Query()`)
|
||||
#### 4.1. Произвольный запрос (`Query()`)
|
||||
|
||||
Выполняет произвольный SQL-запрос и возвращает результат в виде массива.
|
||||
|
||||
@@ -149,19 +149,19 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** Ассоциативный массив или false в случае ошибки.
|
||||
|
||||
#### Первая строка запроса (`QueryFirst()`)
|
||||
#### 4.2. Первая строка запроса (`QueryFirst()`)
|
||||
|
||||
Получает первую строку результата запроса.
|
||||
|
||||
**Возвращаемое значение:** Ассоциативный массив первой строки или false.
|
||||
|
||||
#### Последняя строка запроса (`QueryLast()`)
|
||||
#### 4.3. Последняя строка запроса (`QueryLast()`)
|
||||
|
||||
Получает последнюю строку результата запроса.
|
||||
|
||||
**Возвращаемое значение:** Ассоциативный массив последней строки или false.
|
||||
|
||||
#### Изменяющие запросы (`Execute()`)
|
||||
#### 4.4. Изменяющие запросы (`Execute()`)
|
||||
|
||||
Выполняет запросы модификации данных (INSERT, UPDATE, DELETE).
|
||||
|
||||
@@ -169,7 +169,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
### 5. Вставка данных
|
||||
|
||||
#### Одинарная вставка (`Insert()`)
|
||||
#### 5.1. Одинарная вставка (`Insert()`)
|
||||
|
||||
Вставляет один объект в базу данных.
|
||||
|
||||
@@ -180,7 +180,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** Идентификатор созданной записи, -1 или false в случае ошибки.
|
||||
|
||||
#### Массовая вставка (`InsertMany()`)
|
||||
#### 5.2. Массовая вставка (`InsertMany()`)
|
||||
|
||||
Вставляет несколько объектов одновременно.
|
||||
|
||||
@@ -193,20 +193,20 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
### 6. Получение данных
|
||||
|
||||
#### Получение одного объекта (`GetRow()`)
|
||||
#### 6.1. Получение одного объекта (`GetRow()`)
|
||||
|
||||
Получает одну запись из базы данных и создаёт экземпляр указанного класса.
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `$table`: Имя таблицы.
|
||||
- `$where`: Условие выбора (объект `ConditionBuilder`).
|
||||
- `$columns`: Необходимые колонки (массив).
|
||||
- `$where`: Условие выбора (объект `ConditionBuilder`).
|
||||
- `$className`: Полное имя класса, реализующего интерфейс `IDBItem`.
|
||||
|
||||
**Возвращаемое значение:** Экземпляр указанного класса или false.
|
||||
|
||||
#### Получение набора объектов (`GetRows()`)
|
||||
#### 6.2. Получение набора объектов (`GetRows()`)
|
||||
|
||||
Получает список объектов из базы данных.
|
||||
|
||||
@@ -219,7 +219,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** Массив экземпляров указанных классов или false.
|
||||
|
||||
#### Получение столбца (`GetCol()`)
|
||||
#### 6.3. Получение столбца (`GetCol()`)
|
||||
|
||||
Выбирает конкретные столбцы и возвращает их в виде массива.
|
||||
|
||||
@@ -231,7 +231,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** Массив значений столбца или false.
|
||||
|
||||
#### Получение одиночного значения (`GetValue()`)
|
||||
#### 6.4. Получение одиночного значения (`GetValue()`)
|
||||
|
||||
Выборка единственного значения (поле).
|
||||
|
||||
@@ -245,7 +245,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
### 7. Подсчёт количества / существование записи
|
||||
|
||||
#### Подсчет записей (`Count()`)
|
||||
#### 7.1. Подсчет записей (`Count()`)
|
||||
|
||||
Подсчитывает количество записей, соответствующих фильтру.
|
||||
|
||||
@@ -256,7 +256,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** Целочисленное значение числа записей или -1 в случае ошибки.
|
||||
|
||||
#### Проверка существования записей (`IsExist()`)
|
||||
#### 7.2. Проверка существования записей (`IsExist()`)
|
||||
|
||||
Проверяет наличие хотя бы одной записи по указанным критериям.
|
||||
|
||||
@@ -269,7 +269,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
### 8. Обновления и удаление
|
||||
|
||||
#### Обновление одной записи (`Update()`)
|
||||
#### 8.1. Обновление одной записи (`Update()`)
|
||||
|
||||
Обновляет одно значение в таблице.
|
||||
|
||||
@@ -280,7 +280,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** true при успешном выполнении, false — в противном случае.
|
||||
|
||||
#### Обновление нескольких записей (`UpdateMany()`)
|
||||
#### 8.2. Обновление нескольких записей (`UpdateMany()`)
|
||||
|
||||
Массовое обновление записей.
|
||||
|
||||
@@ -291,7 +291,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** true при успешной массовой обработке, false — в случае ошибки.
|
||||
|
||||
#### Удаление записей (`Delete()`)
|
||||
### 9. Удаление записей (`Delete()`)
|
||||
|
||||
Удаляет записи по заданному критерию.
|
||||
|
||||
@@ -302,9 +302,9 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** true при успехе, false — в случае ошибки.
|
||||
|
||||
### 9. Управление таблицами
|
||||
### 10. Управление таблицами
|
||||
|
||||
#### Проверка существования таблицы (`IsTableExist()`)
|
||||
#### 10.1. Проверка существования таблицы (`IsTableExist()`)
|
||||
|
||||
Проверяет существование конкретной таблицы.
|
||||
|
||||
@@ -314,7 +314,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** true, если таблица существует, false — если отсутствует.
|
||||
|
||||
#### Создание таблицы (`CreateTable()`)
|
||||
#### 10.2. Создание таблицы (`CreateTable()`)
|
||||
|
||||
Создает новую таблицу на основе структуры модели.
|
||||
|
||||
@@ -325,7 +325,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
||||
|
||||
**Возвращаемое значение:** true при создании, false — в случае неудачи.
|
||||
|
||||
#### Удаление таблицы (`DropTable()`)
|
||||
#### 10.3. Удаление таблицы (`DropTable()`)
|
||||
|
||||
Удаляет таблицу из базы данных.
|
||||
|
||||
@@ -350,16 +350,17 @@ class UserModel implements IDBItem {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Добавим его в базу данных:
|
||||
|
||||
```php
|
||||
$table = 'users';
|
||||
$userData = new UserModel();
|
||||
$userData->setUsername('test_user')->setEmail('test@example.com');
|
||||
$userData->Username = 'test_user';
|
||||
$userData->Email = 'test@example.com';
|
||||
$result = $db->Insert($table, $userData);
|
||||
if ($result !== false) {
|
||||
if ($result !== false)
|
||||
echo "Пользователь успешно добавлен!";
|
||||
}
|
||||
```
|
||||
|
||||
#### Пример №2: обновление данных:
|
||||
@@ -371,11 +372,10 @@ $newEmail = 'new_email@example.com';
|
||||
// $userData - это UserModel (полученная ранее из БД)
|
||||
|
||||
// Обновим Email
|
||||
$userData->setEmail($newEmail);
|
||||
$userData->Email = $newEmail;
|
||||
|
||||
if ($db->Update('users', $userData)) {
|
||||
if ($db->Update('users', $userData))
|
||||
echo "Данные пользователя успешно обновлены.";
|
||||
}
|
||||
```
|
||||
|
||||
### Пример №3: Массовая вставка данных
|
||||
@@ -383,7 +383,6 @@ if ($db->Update('users', $userData)) {
|
||||
Допустим, вам нужно добавить несколько пользователей одним запросом:
|
||||
|
||||
```php
|
||||
use goodboyalex\php_db_components_pack\classes\Database;
|
||||
use goodboyalex\php_db_components_pack\models\UserModel;
|
||||
|
||||
// Предположим, что у вас уже инициализирован объект $db
|
||||
@@ -396,13 +395,11 @@ $sources[] = new UserModel(['username' => 'Bob']);
|
||||
// Вставляем всех пользователей разом
|
||||
$result = $db->InsertMany($table, ...$sources);
|
||||
|
||||
if ($result !== false) {
|
||||
foreach ($result as $insertedId) {
|
||||
if ($result !== false)
|
||||
foreach ($result as $insertedId)
|
||||
echo "Добавлен новый пользователь с ID: $insertedId\n";
|
||||
}
|
||||
} else {
|
||||
else
|
||||
echo "Ошибка при массовом добавлении пользователей.\n";
|
||||
}
|
||||
```
|
||||
|
||||
### Пример №4: Проверка существования пользователя по имени
|
||||
@@ -413,17 +410,15 @@ if ($result !== false) {
|
||||
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||
|
||||
// Настраиваем условие
|
||||
$condition = new ConditionBuilder();
|
||||
$condition->addCondition('username', '=', 'JohnDoe');
|
||||
$condition = new ConditionBuilder()->WhereEquals('username', 'JohnDoe');
|
||||
|
||||
// Проверяем наличие пользователя
|
||||
$exists = $db->IsExist('users', $condition);
|
||||
|
||||
if ($exists) {
|
||||
if ($exists)
|
||||
echo "Пользователь JohnDoe уже зарегистрирован!\n";
|
||||
} else {
|
||||
else
|
||||
echo "Пользователь JohnDoe пока не зарегистрирован.\n";
|
||||
}
|
||||
```
|
||||
|
||||
### Пример №5: Поиск списка пользователей старше определенного возраста
|
||||
@@ -434,14 +429,13 @@ if ($exists) {
|
||||
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||
|
||||
// Настройка условия
|
||||
$condition = new ConditionBuilder();
|
||||
$condition->addCondition('age', '>=', 30);
|
||||
$condition = new ConditionBuilder()->WhereGreaterThan('age', 30);
|
||||
|
||||
// Загружаем всех пользователей, соответствующих условию
|
||||
$users = $db->GetRows('users', $condition, ['id', 'username'], '\\UserModel');
|
||||
|
||||
foreach ($users as $user) {
|
||||
echo "Имя пользователя: {$user->getUsername()}, возраст: {$user->getAge()}\n";
|
||||
echo "Имя пользователя: {$user->Name()}, возраст: {$user->Age}\n";
|
||||
}
|
||||
```
|
||||
|
||||
@@ -456,14 +450,15 @@ use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||
$condition = new ConditionBuilder();
|
||||
|
||||
// Подсчет количества пользователей
|
||||
$count = $db->Count('users', $condition);
|
||||
$count = $db->Count('users');
|
||||
|
||||
echo "Всего зарегистрировано пользователей: $count\n";
|
||||
```
|
||||
|
||||
### Пример №7: Удаление устаревших пользователей
|
||||
|
||||
Например, вы хотите удалить всех пользователей, чья активность была давно утрачена (предположим, пользователи с датой последнего входа больше месяца назад):
|
||||
Например, вы хотите удалить всех пользователей, чья активность была давно утрачена (предположим, пользователи с датой
|
||||
последнего входа больше месяца назад):
|
||||
|
||||
```php
|
||||
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||
@@ -471,18 +466,17 @@ use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||
// Например, удаляем пользователей, не заходивших последний месяц
|
||||
$lastMonthDate = date("Y-m-d H:i:s", strtotime('-1 month'));
|
||||
|
||||
$condition = new ConditionBuilder();
|
||||
$condition->addCondition('last_login_date', '<=', $lastMonthDate);
|
||||
$condition = new ConditionBuilder()->WhereLessThanEqual('last_login_date', $lastMonthDate);
|
||||
|
||||
// Удаляем старых пользователей
|
||||
if ($db->Delete('users', $condition)) {
|
||||
if ($db->Delete('users', $condition))
|
||||
echo "Устаревшие пользователи были успешно удалены.\n";
|
||||
} else {
|
||||
else
|
||||
echo "Ошибка при удалении устаревших пользователей.\n";
|
||||
}
|
||||
```
|
||||
|
||||
Эти примеры демонстрируют широкий спектр возможностей, предоставляемых классом `Database`, позволяя эффективно управлять взаимодействием с базой данных.
|
||||
Эти примеры демонстрируют широкий спектр возможностей, предоставляемых классом `Database`, позволяя эффективно управлять
|
||||
взаимодействием с базой данных.
|
||||
|
||||
## Вывод
|
||||
|
||||
|
Reference in New Issue
Block a user