SQL-запрос (выборка, обновление и удаление записей)
Выборка
Выбрать данные можно через метод DB::select().
use Illuminate\Support\Facades\DB; // … $posts = DB::select('SELECT id, title FROM posts');
Параметры рекомендуется передавать через второй атрибут метода DB::select(), т.к. это позволяет избежать SQL-инъекции (исполнение стороннего SQL-кода).
use Illuminate\Support\Facades\DB; // … $params = [ 'category_id' => $request->query('id'), // аналог $_GET['id'] ]; $posts = DB::select('SELECT id, title FROM posts WHERE category_id = :category_id', $params);
Код выше заменит :category_id на переданный параметр из массива $params. При этом переданный параметр будет обработан для безопасного использования в SQL-коде.
Добавление
Добавить запись можно через метод DB::table->insert().
// Добавить запись DB::table('posts')->insert(['title' => 'Имя страницы', 'category_id' => 4]);
Если надо добавить несколько записей, то рекомендуется передавать несколько массивов в метод DB::table->insert(), т.к. в этом случае несколько записей добавятся в базу данных за один запрос.
DB::table('posts')->insert([ ['title' => 'Имя страницы', 'category_id' => 4], ['title' => 'Вторая страница', 'category_id' => 4], ['title' => 'Третья страница', 'category_id' => 12], ]);
Метод DB::table->insert() возвращает «true», если записи были успешно добавлены. Если надо вернуть «id» новой записи, то используется метод DB::table->insertGetId().
// Добавить запись и вернуть id новой записи $id = DB::table('posts')->insertGetId(['title' => 'Имя страницы', 'category_id' => 4]);
Обновление
Обновить запись можно через метод DB::table->update().
// Обновить запись DB::table('posts')->where(['id' => 14])->update(['title' => 'Имя страницы']);
Метод DB::table->update() возвращает количество обновлённых записей.
Также можно увеличить значение поля на указанное число.
// Увеличить значение 'rating' на 5 DB::table('users')->where(['id' => 14])->increment('rating', 5); // Уменьшить значение 'rating' на 5 DB::table('users')->where(['id' => 14])->decrement('rating', 5);
Удаление
Удалить записи можно через метод DB::table()->delete().
use Illuminate\Support\Facades\DB; // … DB::table('posts')->where(['id' => 14])->delete();
Метод DB::table()->delete() возвращает количество удалённых записей.
Если надо удалить все записи, то рекомендуется использовать метод DB::table()->truncate(), который также сбрасывает автоинкремент на ноль.
DB::table('logs')->truncate();
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта
