Как создать sql запрос без конструктора в laravel 5?

Пользователь

от otha_marks , в категории: PHP , год назад

Как создать sql запрос без конструктора в laravel 5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от shayna.buckridge , год назад

@otha_marks 

Для создания SQL-запросов без конструктора в Laravel 5 можно использовать фасад DB.


Пример простого запроса для выборки данных из таблицы users:

1
$results = DB::select('SELECT * FROM users');


Можно также использовать методы insert, update, delete и другие, чтобы выполнять соответствующие операции с данными.


Для более сложных запросов можно использовать метод select и построитель запросов (query builder), который позволяет комбинировать различные условия, сортировки и группировки:

1
2
3
4
5
$results = DB::table('users')
            ->where('name', 'John')
            ->orWhere('name', 'Jane')
            ->orderBy('id', 'desc')
            ->get();


Этот запрос выберет из таблицы users все записи, у которых имя равно "John" или "Jane", отсортирует их по убыванию id и вернет результат в виде коллекции.

Пользователь

от felix , 2 месяца назад

@otha_marks 

Также, можно использовать методы insert и update для добавления и обновления данных соответственно:


1 2 3


$insert = DB::table('users')->insert( ['name' => 'John', 'email' => '[email protected]'] );


$update = DB::table('users') ->where('id', 1) ->update(['votes' => 1]);


В этом примере метод insert добавляет новую запись в таблицу users, а метод update обновляет запись с id равным 1, устанавливая значение поля votes равным 1. Оба метода возвращают булево значение, указывающее, была ли операция успешной.


Также можно использовать метод delete для удаления данных:


1


$delete = DB::table('users')->where('votes', '<', 100)->delete();


Это удалит все записи из таблицы users, у которых значение поля votes меньше 100.


Обратите внимание, что для использования фасада DB необходимо импортировать соответствующий класс в начало файла:


1


use IlluminateSupportFacadesDB;