20250810 v1.0

This commit is contained in:
2025-08-10 11:48:29 +03:00
parent d2077fbc76
commit 3dc403ebf2
11 changed files with 426 additions and 19 deletions

View File

@@ -0,0 +1,66 @@
# Обновление данных
Итак, в [прошлой статье](count_exist_data.md) мы рассмотрели способы проверки существования данных и подсчёта количества
данных по условию из таблицы `users`. Напомним, что она имеет вид:
| id | user_name | user_mail |
|:--:|:---------:|:-------------------:|
| 1 | Ivan | ivan@example.com |
| 2 | Olga | olga@example.com |
| 3 | Oleg | oleg@mail.ru |
| 4 | Nikolay | nikolay@example.com |
Попробуем теперь изменить почту пользователя `Olga`. Для этого воспользуемся
методом [Update](../class_desc/classes/Database.md#81-обновление-одной-записи-update):
```php
// Давайте получим сперва пользователя
$user = $db->GetRow('users', where: new ConditionBuilder()->WhereEquals('user_name', 'Olga'), className: "\\App\\Models\\User");
// Меняем почту
$user->Email = 'olga@ya.ru'
if ($db->Update('users', $user))
echo 'Почта Ольги обновлена!';
```
Теперь таблица в БД имеет вид:
| id | user_name | user_mail |
|:--:|:---------:|:-------------------:|
| 1 | Ivan | ivan@example.com |
| 2 | Olga | olga@ya.ru |
| 3 | Oleg | oleg@mail.ru |
| 4 | Nikolay | nikolay@example.com |
Давайте теперь обновим оставшихся пользователей, у которых почта на домене `example.com`. Для этого нам потребуется
метод [UpdateMany](../class_desc/classes/Database.md#82-обновление-нескольких-записей-updatemany):
```php
// Давайте сперва получим Ivan
$userIvan = $db->GetRow('users', where: new ConditionBuilder()->WhereEquals('user_name', 'Ivan'), className: "\\App\\Models\\User");
// Давайте сперва получим Nikolay
$userNikolay = $db->GetRow('users', where: new ConditionBuilder()->WhereEquals('user_name', 'Nikolay'), className: "\\App\\Models\\User");
// Меняем их почту
$userIvan->Email = "ivan@yandex.ru";
$userNikolay->Email = "nikolay@yandex.ru";
// Обновляем
if ($db->UpdateMany('users', $userIvan, $userNikolay))
echo 'Почты обновлены!';
```
Теперь таблица в БД имеет вид:
| id | user_name | user_mail |
|:--:|:---------:|:-----------------:|
| 1 | Ivan | ivan@yandex.ru |
| 2 | Olga | olga@ya.ru |
| 3 | Oleg | oleg@mail.ru |
| 4 | Nikolay | nikolay@yandex.ru |
Итак, мы рассмотрели все возможные способы обновления данных.
[Предыдущий пункт](count_exist_data.md) | [На главную](../index.md) | [Следующий пункт](delete_data.md)