РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
370 of 1392 menu

Класс DB

Класс DB в Laravel предоставляет доступ к Query Builder - мощному инструменту для работы с базой данных. Он позволяет выполнять запросы к таблицам без использования Eloquent ORM. Основные методы: table - выбор таблицы, select - выполнение SELECT-запроса, insert - вставка записей, update - обновление записей, delete - удаление записей. Также класс поддерживает транзакции и выполнение сырых запросов.

Синтаксис

<?php use Illuminate\Support\Facades\DB; // Базовое использование $res = DB::table($table)->get(); ?>

Пример выбора записей

Давайте получим все записи из таблицы users:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function index() { $res = DB::table('users')->get(); foreach ($res as $user) { echo $user->name; } } } ?>

Результат выполнения кода:

["user 1", "user 2", "user 3"]

Пример вставки записи

Давайте добавим нового пользователя в таблицу users:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function store() { $id = DB::table('users')->insertGetId([ 'name' => 'John Doe', 'email' => 'john@example.com', 'created_at' => now() ]); echo "User created with id: $id"; } } ?>

Результат выполнения кода:

"User created with id: 5"

Пример обновления записи

Давайте обновим email пользователя с id равным 1:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function update() { $affected = DB::table('users') ->where('id', 1) ->update([ 'email' => 'newemail@example.com', 'updated_at' => now() ]); echo "Updated rows: $affected"; } } ?>

Результат выполнения кода:

"Updated rows: 1"

Пример удаления записи

Давайте удалим пользователя с id равным 3:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function destroy() { $deleted = DB::table('users') ->where('id', 3) ->delete(); echo "Deleted rows: $deleted"; } } ?>

Результат выполнения кода:

"Deleted rows: 1"

Пример выполнения сырого запроса

Давайте выполним произвольный SQL-запрос с помощью метода select:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function rawQuery() { $res = DB::select('SELECT * FROM users WHERE id > ?', [1]); foreach ($res as $user) { echo $user->name; } } } ?>

Результат выполнения кода:

["user 2", "user 3", "user 4"]

Пример использования транзакции

Давайте выполним несколько операций в транзакции:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function transaction() { DB::transaction(function () { DB::table('users') ->where('id', 1) ->update(['name' => 'Updated Name']); DB::table('logs')->insert([ 'action' => 'user_updated', 'user_id' => 1, 'created_at' => now() ]); }); echo "Transaction completed successfully"; } } ?>

Результат выполнения кода:

"Transaction completed successfully"

Смотрите также

  • метод table,
    который начинает построение запроса к таблице
  • метод select,
    который выполняет SELECT-запрос
  • метод transaction,
    который выполняет операции в транзакции
  • метод raw,
    который создает выражение для сырых SQL-запросов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить