20250807
This commit is contained in:
parent
d132832d28
commit
819a305fde
@ -18,7 +18,17 @@ $db_config = new DBConfig(
|
|||||||
|
|
||||||
Первым параметром идёт драйвер СУБД, представленный перечислением [DBDriver](../class_desc/enums/DBDriver.md), затем сервер БД, порт, её имя, пользователь, пароль и ключ для шифрования (_если используете действия интерфейса ISerializable_).
|
Первым параметром идёт драйвер СУБД, представленный перечислением [DBDriver](../class_desc/enums/DBDriver.md), затем сервер БД, порт, её имя, пользователь, пароль и ключ для шифрования (_если используете действия интерфейса ISerializable_).
|
||||||
|
|
||||||
Итак, настройки созданы, время создать сам класс [Database](../class_desc/classes/Database.md)
|
Итак, настройки созданы, время создать сам класс [Database](../class_desc/classes/Database.md):
|
||||||
|
|
||||||
|
```php
|
||||||
|
use goodboyalex\php_db_components_pack\classes\Database;
|
||||||
|
|
||||||
|
$onException = fn (Exception $exception, bool $terminate) => $terminate
|
||||||
|
? die($exception->getMessage())
|
||||||
|
: echo $exception->getMessage();
|
||||||
|
|
||||||
|
$db = new Database($db_config, $onException);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
[На главную](../index.md) | [Следующий пункт](../index.md)
|
[На главную](../index.md) | [Следующий пункт](../index.md)
|
@ -112,25 +112,25 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
### 3. Транзакции
|
### 3. Транзакции
|
||||||
|
|
||||||
#### Создание транзакции (`InitTransaction()`)
|
#### 3.1. Создание транзакции (`InitTransaction()`)
|
||||||
|
|
||||||
Начинает новую транзакцию в базе данных.
|
Начинает новую транзакцию в базе данных.
|
||||||
|
|
||||||
**Возвращаемое значение:** void.
|
**Возвращаемое значение:** void.
|
||||||
|
|
||||||
#### Проверка существования транзакции (`InTransaction()`)
|
#### 3.2. Проверка существования транзакции (`InTransaction()`)
|
||||||
|
|
||||||
Проверяет, активна ли транзакция.
|
Проверяет, активна ли транзакция.
|
||||||
|
|
||||||
**Возвращаемое значение:** true — транзакция активна, false — неактивна.
|
**Возвращаемое значение:** true — транзакция активна, false — неактивна.
|
||||||
|
|
||||||
#### Фиксация транзакций (`Commit()`)
|
#### 3.3. Фиксация транзакций (`Commit()`)
|
||||||
|
|
||||||
Фиксирует выполненную транзакцию.
|
Фиксирует выполненную транзакцию.
|
||||||
|
|
||||||
**Возвращаемое значение:** void.
|
**Возвращаемое значение:** void.
|
||||||
|
|
||||||
#### Откат транзакций (`RollBack()`)
|
#### 3.4. Откат транзакций (`RollBack()`)
|
||||||
|
|
||||||
Отменяет активные изменения транзакции.
|
Отменяет активные изменения транзакции.
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
### 4. Выполнение запросов
|
### 4. Выполнение запросов
|
||||||
|
|
||||||
#### Произвольный запрос (`Query()`)
|
#### 4.1. Произвольный запрос (`Query()`)
|
||||||
|
|
||||||
Выполняет произвольный SQL-запрос и возвращает результат в виде массива.
|
Выполняет произвольный SQL-запрос и возвращает результат в виде массива.
|
||||||
|
|
||||||
@ -149,19 +149,19 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** Ассоциативный массив или false в случае ошибки.
|
**Возвращаемое значение:** Ассоциативный массив или false в случае ошибки.
|
||||||
|
|
||||||
#### Первая строка запроса (`QueryFirst()`)
|
#### 4.2. Первая строка запроса (`QueryFirst()`)
|
||||||
|
|
||||||
Получает первую строку результата запроса.
|
Получает первую строку результата запроса.
|
||||||
|
|
||||||
**Возвращаемое значение:** Ассоциативный массив первой строки или false.
|
**Возвращаемое значение:** Ассоциативный массив первой строки или false.
|
||||||
|
|
||||||
#### Последняя строка запроса (`QueryLast()`)
|
#### 4.3. Последняя строка запроса (`QueryLast()`)
|
||||||
|
|
||||||
Получает последнюю строку результата запроса.
|
Получает последнюю строку результата запроса.
|
||||||
|
|
||||||
**Возвращаемое значение:** Ассоциативный массив последней строки или false.
|
**Возвращаемое значение:** Ассоциативный массив последней строки или false.
|
||||||
|
|
||||||
#### Изменяющие запросы (`Execute()`)
|
#### 4.4. Изменяющие запросы (`Execute()`)
|
||||||
|
|
||||||
Выполняет запросы модификации данных (INSERT, UPDATE, DELETE).
|
Выполняет запросы модификации данных (INSERT, UPDATE, DELETE).
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
### 5. Вставка данных
|
### 5. Вставка данных
|
||||||
|
|
||||||
#### Одинарная вставка (`Insert()`)
|
#### 5.1. Одинарная вставка (`Insert()`)
|
||||||
|
|
||||||
Вставляет один объект в базу данных.
|
Вставляет один объект в базу данных.
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** Идентификатор созданной записи, -1 или false в случае ошибки.
|
**Возвращаемое значение:** Идентификатор созданной записи, -1 или false в случае ошибки.
|
||||||
|
|
||||||
#### Массовая вставка (`InsertMany()`)
|
#### 5.2. Массовая вставка (`InsertMany()`)
|
||||||
|
|
||||||
Вставляет несколько объектов одновременно.
|
Вставляет несколько объектов одновременно.
|
||||||
|
|
||||||
@ -193,20 +193,20 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
### 6. Получение данных
|
### 6. Получение данных
|
||||||
|
|
||||||
#### Получение одного объекта (`GetRow()`)
|
#### 6.1. Получение одного объекта (`GetRow()`)
|
||||||
|
|
||||||
Получает одну запись из базы данных и создаёт экземпляр указанного класса.
|
Получает одну запись из базы данных и создаёт экземпляр указанного класса.
|
||||||
|
|
||||||
**Параметры**
|
**Параметры**
|
||||||
|
|
||||||
- `$table`: Имя таблицы.
|
- `$table`: Имя таблицы.
|
||||||
- `$where`: Условие выбора (объект `ConditionBuilder`).
|
|
||||||
- `$columns`: Необходимые колонки (массив).
|
- `$columns`: Необходимые колонки (массив).
|
||||||
|
- `$where`: Условие выбора (объект `ConditionBuilder`).
|
||||||
- `$className`: Полное имя класса, реализующего интерфейс `IDBItem`.
|
- `$className`: Полное имя класса, реализующего интерфейс `IDBItem`.
|
||||||
|
|
||||||
**Возвращаемое значение:** Экземпляр указанного класса или false.
|
**Возвращаемое значение:** Экземпляр указанного класса или false.
|
||||||
|
|
||||||
#### Получение набора объектов (`GetRows()`)
|
#### 6.2. Получение набора объектов (`GetRows()`)
|
||||||
|
|
||||||
Получает список объектов из базы данных.
|
Получает список объектов из базы данных.
|
||||||
|
|
||||||
@ -219,7 +219,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** Массив экземпляров указанных классов или false.
|
**Возвращаемое значение:** Массив экземпляров указанных классов или false.
|
||||||
|
|
||||||
#### Получение столбца (`GetCol()`)
|
#### 6.3. Получение столбца (`GetCol()`)
|
||||||
|
|
||||||
Выбирает конкретные столбцы и возвращает их в виде массива.
|
Выбирает конкретные столбцы и возвращает их в виде массива.
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** Массив значений столбца или false.
|
**Возвращаемое значение:** Массив значений столбца или false.
|
||||||
|
|
||||||
#### Получение одиночного значения (`GetValue()`)
|
#### 6.4. Получение одиночного значения (`GetValue()`)
|
||||||
|
|
||||||
Выборка единственного значения (поле).
|
Выборка единственного значения (поле).
|
||||||
|
|
||||||
@ -245,7 +245,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
### 7. Подсчёт количества / существование записи
|
### 7. Подсчёт количества / существование записи
|
||||||
|
|
||||||
#### Подсчет записей (`Count()`)
|
#### 7.1. Подсчет записей (`Count()`)
|
||||||
|
|
||||||
Подсчитывает количество записей, соответствующих фильтру.
|
Подсчитывает количество записей, соответствующих фильтру.
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** Целочисленное значение числа записей или -1 в случае ошибки.
|
**Возвращаемое значение:** Целочисленное значение числа записей или -1 в случае ошибки.
|
||||||
|
|
||||||
#### Проверка существования записей (`IsExist()`)
|
#### 7.2. Проверка существования записей (`IsExist()`)
|
||||||
|
|
||||||
Проверяет наличие хотя бы одной записи по указанным критериям.
|
Проверяет наличие хотя бы одной записи по указанным критериям.
|
||||||
|
|
||||||
@ -269,7 +269,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
### 8. Обновления и удаление
|
### 8. Обновления и удаление
|
||||||
|
|
||||||
#### Обновление одной записи (`Update()`)
|
#### 8.1. Обновление одной записи (`Update()`)
|
||||||
|
|
||||||
Обновляет одно значение в таблице.
|
Обновляет одно значение в таблице.
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** true при успешном выполнении, false — в противном случае.
|
**Возвращаемое значение:** true при успешном выполнении, false — в противном случае.
|
||||||
|
|
||||||
#### Обновление нескольких записей (`UpdateMany()`)
|
#### 8.2. Обновление нескольких записей (`UpdateMany()`)
|
||||||
|
|
||||||
Массовое обновление записей.
|
Массовое обновление записей.
|
||||||
|
|
||||||
@ -291,7 +291,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** true при успешной массовой обработке, false — в случае ошибки.
|
**Возвращаемое значение:** true при успешной массовой обработке, false — в случае ошибки.
|
||||||
|
|
||||||
#### Удаление записей (`Delete()`)
|
### 9. Удаление записей (`Delete()`)
|
||||||
|
|
||||||
Удаляет записи по заданному критерию.
|
Удаляет записи по заданному критерию.
|
||||||
|
|
||||||
@ -302,9 +302,9 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** true при успехе, false — в случае ошибки.
|
**Возвращаемое значение:** true при успехе, false — в случае ошибки.
|
||||||
|
|
||||||
### 9. Управление таблицами
|
### 10. Управление таблицами
|
||||||
|
|
||||||
#### Проверка существования таблицы (`IsTableExist()`)
|
#### 10.1. Проверка существования таблицы (`IsTableExist()`)
|
||||||
|
|
||||||
Проверяет существование конкретной таблицы.
|
Проверяет существование конкретной таблицы.
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** true, если таблица существует, false — если отсутствует.
|
**Возвращаемое значение:** true, если таблица существует, false — если отсутствует.
|
||||||
|
|
||||||
#### Создание таблицы (`CreateTable()`)
|
#### 10.2. Создание таблицы (`CreateTable()`)
|
||||||
|
|
||||||
Создает новую таблицу на основе структуры модели.
|
Создает новую таблицу на основе структуры модели.
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ $db = new Database($config, function(Exception $e, bool $terminate) {
|
|||||||
|
|
||||||
**Возвращаемое значение:** true при создании, false — в случае неудачи.
|
**Возвращаемое значение:** true при создании, false — в случае неудачи.
|
||||||
|
|
||||||
#### Удаление таблицы (`DropTable()`)
|
#### 10.3. Удаление таблицы (`DropTable()`)
|
||||||
|
|
||||||
Удаляет таблицу из базы данных.
|
Удаляет таблицу из базы данных.
|
||||||
|
|
||||||
@ -350,16 +350,17 @@ class UserModel implements IDBItem {
|
|||||||
...
|
...
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Добавим его в базу данных:
|
Добавим его в базу данных:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
$table = 'users';
|
$table = 'users';
|
||||||
$userData = new UserModel();
|
$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);
|
$result = $db->Insert($table, $userData);
|
||||||
if ($result !== false) {
|
if ($result !== false)
|
||||||
echo "Пользователь успешно добавлен!";
|
echo "Пользователь успешно добавлен!";
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Пример №2: обновление данных:
|
#### Пример №2: обновление данных:
|
||||||
@ -371,11 +372,10 @@ $newEmail = 'new_email@example.com';
|
|||||||
// $userData - это UserModel (полученная ранее из БД)
|
// $userData - это UserModel (полученная ранее из БД)
|
||||||
|
|
||||||
// Обновим Email
|
// Обновим Email
|
||||||
$userData->setEmail($newEmail);
|
$userData->Email = $newEmail;
|
||||||
|
|
||||||
if ($db->Update('users', $userData)) {
|
if ($db->Update('users', $userData))
|
||||||
echo "Данные пользователя успешно обновлены.";
|
echo "Данные пользователя успешно обновлены.";
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Пример №3: Массовая вставка данных
|
### Пример №3: Массовая вставка данных
|
||||||
@ -383,7 +383,6 @@ if ($db->Update('users', $userData)) {
|
|||||||
Допустим, вам нужно добавить несколько пользователей одним запросом:
|
Допустим, вам нужно добавить несколько пользователей одним запросом:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
use goodboyalex\php_db_components_pack\classes\Database;
|
|
||||||
use goodboyalex\php_db_components_pack\models\UserModel;
|
use goodboyalex\php_db_components_pack\models\UserModel;
|
||||||
|
|
||||||
// Предположим, что у вас уже инициализирован объект $db
|
// Предположим, что у вас уже инициализирован объект $db
|
||||||
@ -396,13 +395,11 @@ $sources[] = new UserModel(['username' => 'Bob']);
|
|||||||
// Вставляем всех пользователей разом
|
// Вставляем всех пользователей разом
|
||||||
$result = $db->InsertMany($table, ...$sources);
|
$result = $db->InsertMany($table, ...$sources);
|
||||||
|
|
||||||
if ($result !== false) {
|
if ($result !== false)
|
||||||
foreach ($result as $insertedId) {
|
foreach ($result as $insertedId)
|
||||||
echo "Добавлен новый пользователь с ID: $insertedId\n";
|
echo "Добавлен новый пользователь с ID: $insertedId\n";
|
||||||
}
|
else
|
||||||
} else {
|
|
||||||
echo "Ошибка при массовом добавлении пользователей.\n";
|
echo "Ошибка при массовом добавлении пользователей.\n";
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Пример №4: Проверка существования пользователя по имени
|
### Пример №4: Проверка существования пользователя по имени
|
||||||
@ -413,17 +410,15 @@ if ($result !== false) {
|
|||||||
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||||
|
|
||||||
// Настраиваем условие
|
// Настраиваем условие
|
||||||
$condition = new ConditionBuilder();
|
$condition = new ConditionBuilder()->WhereEquals('username', 'JohnDoe');
|
||||||
$condition->addCondition('username', '=', 'JohnDoe');
|
|
||||||
|
|
||||||
// Проверяем наличие пользователя
|
// Проверяем наличие пользователя
|
||||||
$exists = $db->IsExist('users', $condition);
|
$exists = $db->IsExist('users', $condition);
|
||||||
|
|
||||||
if ($exists) {
|
if ($exists)
|
||||||
echo "Пользователь JohnDoe уже зарегистрирован!\n";
|
echo "Пользователь JohnDoe уже зарегистрирован!\n";
|
||||||
} else {
|
else
|
||||||
echo "Пользователь JohnDoe пока не зарегистрирован.\n";
|
echo "Пользователь JohnDoe пока не зарегистрирован.\n";
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Пример №5: Поиск списка пользователей старше определенного возраста
|
### Пример №5: Поиск списка пользователей старше определенного возраста
|
||||||
@ -434,14 +429,13 @@ if ($exists) {
|
|||||||
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
||||||
|
|
||||||
// Настройка условия
|
// Настройка условия
|
||||||
$condition = new ConditionBuilder();
|
$condition = new ConditionBuilder()->WhereGreaterThan('age', 30);
|
||||||
$condition->addCondition('age', '>=', 30);
|
|
||||||
|
|
||||||
// Загружаем всех пользователей, соответствующих условию
|
// Загружаем всех пользователей, соответствующих условию
|
||||||
$users = $db->GetRows('users', $condition, ['id', 'username'], '\\UserModel');
|
$users = $db->GetRows('users', $condition, ['id', 'username'], '\\UserModel');
|
||||||
|
|
||||||
foreach ($users as $user) {
|
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();
|
$condition = new ConditionBuilder();
|
||||||
|
|
||||||
// Подсчет количества пользователей
|
// Подсчет количества пользователей
|
||||||
$count = $db->Count('users', $condition);
|
$count = $db->Count('users');
|
||||||
|
|
||||||
echo "Всего зарегистрировано пользователей: $count\n";
|
echo "Всего зарегистрировано пользователей: $count\n";
|
||||||
```
|
```
|
||||||
|
|
||||||
### Пример №7: Удаление устаревших пользователей
|
### Пример №7: Удаление устаревших пользователей
|
||||||
|
|
||||||
Например, вы хотите удалить всех пользователей, чья активность была давно утрачена (предположим, пользователи с датой последнего входа больше месяца назад):
|
Например, вы хотите удалить всех пользователей, чья активность была давно утрачена (предположим, пользователи с датой
|
||||||
|
последнего входа больше месяца назад):
|
||||||
|
|
||||||
```php
|
```php
|
||||||
use goodboyalex\php_db_components_pack\conditions\ConditionBuilder;
|
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'));
|
$lastMonthDate = date("Y-m-d H:i:s", strtotime('-1 month'));
|
||||||
|
|
||||||
$condition = new ConditionBuilder();
|
$condition = new ConditionBuilder()->WhereLessThanEqual('last_login_date', $lastMonthDate);
|
||||||
$condition->addCondition('last_login_date', '<=', $lastMonthDate);
|
|
||||||
|
|
||||||
// Удаляем старых пользователей
|
// Удаляем старых пользователей
|
||||||
if ($db->Delete('users', $condition)) {
|
if ($db->Delete('users', $condition))
|
||||||
echo "Устаревшие пользователи были успешно удалены.\n";
|
echo "Устаревшие пользователи были успешно удалены.\n";
|
||||||
} else {
|
else
|
||||||
echo "Ошибка при удалении устаревших пользователей.\n";
|
echo "Ошибка при удалении устаревших пользователей.\n";
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Эти примеры демонстрируют широкий спектр возможностей, предоставляемых классом `Database`, позволяя эффективно управлять взаимодействием с базой данных.
|
Эти примеры демонстрируют широкий спектр возможностей, предоставляемых классом `Database`, позволяя эффективно управлять
|
||||||
|
взаимодействием с базой данных.
|
||||||
|
|
||||||
## Вывод
|
## Вывод
|
||||||
|
|
||||||
|
@ -12,6 +12,21 @@
|
|||||||
|
|
||||||
## Описание интерфейсов, классов и перечислений:
|
## Описание интерфейсов, классов и перечислений:
|
||||||
|
|
||||||
|
### Атрибуты
|
||||||
|
|
||||||
|
- [AutoIncrement](class_desc/attributes/AutoIncrement.md)
|
||||||
|
- [Check](class_desc/attributes/Check.md)
|
||||||
|
- [Compare](class_desc/attributes/Compare.md)
|
||||||
|
- [ConvertToDB](class_desc/attributes/ConvertToDB.md)
|
||||||
|
- [DataType](class_desc/attributes/DataType.md)
|
||||||
|
- [DefaultValue](class_desc/attributes/DefaultValue.md)
|
||||||
|
- [FieldName](class_desc/attributes/FieldName.md)
|
||||||
|
- [ForeignKey](class_desc/attributes/ForeignKey.md)
|
||||||
|
- [IgnoredInDB](class_desc/attributes/IgnoredInDB.md)
|
||||||
|
- [NotNull](class_desc/attributes/NotNull.md)
|
||||||
|
- [PrimaryKey](class_desc/attributes/PrimaryKey.md)
|
||||||
|
- [Unique](class_desc/attributes/Unique.md)
|
||||||
|
|
||||||
### Модели
|
### Модели
|
||||||
|
|
||||||
- [DataBaseColumn](class_desc/models/DataBaseColumn.md)
|
- [DataBaseColumn](class_desc/models/DataBaseColumn.md)
|
||||||
@ -31,6 +46,11 @@
|
|||||||
|
|
||||||
### Классы
|
### Классы
|
||||||
|
|
||||||
|
- [Condition](class_desc/classes/Condition.md)
|
||||||
|
- [ConditionBuilder](class_desc/classes/ConditionBuilder.md)
|
||||||
|
- [ConditionGroup](class_desc/classes/ConditionGroup.md)
|
||||||
|
- [Database](class_desc/classes/Database.md)
|
||||||
|
|
||||||
#### Драйвера управления таблицами
|
#### Драйвера управления таблицами
|
||||||
|
|
||||||
- [MySQLTableManager](class_desc/classes/tm_drivers/MySQLTableManager.md)
|
- [MySQLTableManager](class_desc/classes/tm_drivers/MySQLTableManager.md)
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
*
|
*
|
||||||
* @return int Количество строк или -1, в случае ошибки.
|
* @return int Количество строк или -1, в случае ошибки.
|
||||||
*/
|
*/
|
||||||
public function Count (string $table, ConditionBuilder $where): int
|
public function Count (string $table, ConditionBuilder $where = new ConditionBuilder()): int
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Получаем условия.
|
* Получаем условия.
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
*
|
*
|
||||||
* @return bool Результат выполнения.
|
* @return bool Результат выполнения.
|
||||||
*/
|
*/
|
||||||
public function Delete (string $table, ConditionBuilder $where): bool
|
public function Delete (string $table, ConditionBuilder $where = new ConditionBuilder()): bool
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Получаю SQL-запрос и параметры для where.
|
* Получаю SQL-запрос и параметры для where.
|
||||||
|
@ -25,13 +25,13 @@
|
|||||||
* Извлекает одну запись из базы данных и создает соответствующий объект класса.
|
* Извлекает одну запись из базы данных и создает соответствующий объект класса.
|
||||||
*
|
*
|
||||||
* @param string $table Название таблицы.
|
* @param string $table Название таблицы.
|
||||||
* @param ConditionBuilder $where Условия выборки.
|
|
||||||
* @param array $columns Колонки, которые нужно включить в запрос.
|
* @param array $columns Колонки, которые нужно включить в запрос.
|
||||||
|
* @param ConditionBuilder $where Условия выборки.
|
||||||
* @param string $className Полное имя класса, реализуемого интерфейсом IDBItem.
|
* @param string $className Полное имя класса, реализуемого интерфейсом IDBItem.
|
||||||
*
|
*
|
||||||
* @return object|false Заполненный объект класса или <code>false</code> в случае ошибки.
|
* @return object|false Заполненный объект класса или <code>false</code> в случае ошибки.
|
||||||
*/
|
*/
|
||||||
public function GetRow (string $table, ConditionBuilder $where, array $columns = [],
|
public function GetRow (string $table, array $columns = [], ConditionBuilder $where = new ConditionBuilder(),
|
||||||
string $className = "\\StdClass"): object|false
|
string $className = "\\StdClass"): object|false
|
||||||
{
|
{
|
||||||
// Задаю массив параметров
|
// Задаю массив параметров
|
||||||
@ -73,7 +73,8 @@
|
|||||||
*
|
*
|
||||||
* @return false|ObjectArray Массив найденных классов или <code>false</code> в случае ошибки.
|
* @return false|ObjectArray Массив найденных классов или <code>false</code> в случае ошибки.
|
||||||
*/
|
*/
|
||||||
public function GetRows (string $table, ConditionBuilder $where, array $columns = [],
|
public
|
||||||
|
function GetRows (string $table, ConditionBuilder $where, array $columns = [],
|
||||||
string $className = "\\StdClass"): false|ObjectArray
|
string $className = "\\StdClass"): false|ObjectArray
|
||||||
{
|
{
|
||||||
// Задаю массив параметров
|
// Задаю массив параметров
|
||||||
@ -122,7 +123,8 @@
|
|||||||
*
|
*
|
||||||
* @see Query
|
* @see Query
|
||||||
*/
|
*/
|
||||||
public function GetCol (string $table, string $column, ConditionBuilder $where): false|array
|
public
|
||||||
|
function GetCol (string $table, string $column, ConditionBuilder $where): false|array
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Интерпретирую условия.
|
* Интерпретирую условия.
|
||||||
@ -169,7 +171,8 @@
|
|||||||
*
|
*
|
||||||
* @return mixed|null Результат запроса или <code>null</code> в случае ошибки.
|
* @return mixed|null Результат запроса или <code>null</code> в случае ошибки.
|
||||||
*/
|
*/
|
||||||
public function GetValue (string $table, string $column, ConditionBuilder $where): mixed
|
public
|
||||||
|
function GetValue (string $table, string $column, ConditionBuilder $where): mixed
|
||||||
{
|
{
|
||||||
// Получаю колонку по условию из таблицы
|
// Получаю колонку по условию из таблицы
|
||||||
$result = $this->GetCol($table, $column, $where);
|
$result = $this->GetCol($table, $column, $where);
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
$property = $primaryKeys[$i];
|
$property = $primaryKeys[$i];
|
||||||
|
|
||||||
// - получаю ключ
|
// - получаю ключ
|
||||||
$whereKey = $property->FieldName;
|
$whereKey = $property->Column->Name;
|
||||||
|
|
||||||
// - получаю значение ключа, конвертируя его в БД
|
// - получаю значение ключа, конвертируя его в БД
|
||||||
$whereValue = call_user_func($property->ConvertToDB, $property->Value);
|
$whereValue = call_user_func($property->ConvertToDB, $property->Value);
|
||||||
@ -67,7 +67,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Получаю запись из базы данных
|
// Получаю запись из базы данных
|
||||||
$dbItem = $this->GetRow($table, $where, className: get_class($item));
|
$dbItem = $this->GetRow($table, where: $where, className: get_class($item));
|
||||||
|
|
||||||
// Если запись не найдена
|
// Если запись не найдена
|
||||||
if ($dbItem === false)
|
if ($dbItem === false)
|
||||||
@ -80,7 +80,7 @@
|
|||||||
/**
|
/**
|
||||||
* Для каждого свойства...
|
* Для каждого свойства...
|
||||||
*
|
*
|
||||||
* @var \goodboyalex\php_db_components_pack\models\DBItemProperty $property Свойство.
|
* @var DBItemProperty $property Свойство.
|
||||||
*/
|
*/
|
||||||
foreach ($properties as $property) {
|
foreach ($properties as $property) {
|
||||||
// ... если это первичный ключ
|
// ... если это первичный ключ
|
||||||
@ -112,7 +112,7 @@
|
|||||||
$value = call_user_func($property->ConvertToDB, $property->Value);
|
$value = call_user_func($property->ConvertToDB, $property->Value);
|
||||||
|
|
||||||
// - добавляю его в массив параметров для обновления
|
// - добавляю его в массив параметров для обновления
|
||||||
$propertyToSet[$property->FieldName] = $value;
|
$propertyToSet[$property->Column->Name] = $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Создаю массив set
|
// Создаю массив set
|
||||||
|
Loading…
x
Reference in New Issue
Block a user