2.9 KiB
2.9 KiB
Получение данных
Итак, в прошлой статье мы наполнили таблицу 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 |
Попробуем теперь получить строку, где имя пользователя - Oleg
. Для этого воспользуемся
методом GetRow:
$user = $db->GetRow('users', where: new ConditionBuilder()->WhereEquals('user_name', 'Oleg'), className: "\\App\\Models\\User");
echo $user->Id; // Выведет 3
echo $user->Email; // Выведет oleg@mail.ru
Давайте теперь получим пользователей, у которых почта на домене example.com
. Для этого нам потребуется
метод GetRows:
$users = $db->GetRows('users', where: new ConditionBuilder()->WhereLike('user_mail', '%example.com'), className: "\\App\\Models\\User");
// Выведет:
// Ivan
// Olga
// Nikolay
foreach ($users as $user)
echo $user->Name;
Давайте теперь немного изменим предыдущую задачу. Пусть нам требуется только столбец user_name
для всех пользователей.
Для этого нам потребуется метод GetCol:
$users = $db->GetCol('users', 'user_name');
$users = implode(', ', $users);
// Выведет: Ivan, Olga, Oleg, Nikolay
echo $users;
Далее, представим, что вы пишете функцию получения id
по user_name
. С помощью
метода GetValue мы это сделаем ниже:
function GetUserId (string $userName): int {
// Задаём условие
$condition = new ConditionBuilder()->WhereEquals('user_name', $userName);
// Получаем
$id = $db->GetValue('users', 'id', $condition);
// Возвращаю 0, если ошибка и $id, если всё хорошо
return $id == null ? 0 : $id;
}
Итак, мы рассмотрели все возможные способы получения данных.