SQL запросы в Laravel

С помощью класса DB можно выполнять любые запросы к базе данных. Рассмотрим самые востребованные.

Выполнение запроса SELECT

Метода "select" первым аргументом принимает SQL запрос. Вторым аргументом - связки параметров для запроса в массиве. Такая привязка параметров позволяет сделать защиту от SQL инъекций. К примеру, выберем из базы все записи для пользователя с id равным 1:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;

class MouseController extends Controller{
   public function index(){
      $users = DB::select('select * from users where id = :id', ['id' => 1]);

      return view('user.index', ['users' => $users]);
   }
}
?>
Для обозначения привязки элементов вместо названия ключа массива вопроса можно использовать знак вопроса. Но при этом надо подстановка будет последовательной. Поэтому если есть несколько знаков вопроса, то будут подставлены несколько значений из массива:
<?php
   DB::select('select * from users where id = ? and login = ?', [1, 'admin']);
?>
Результат выполнения метода "select" возвращается в виде объекта StdClass, позволяя делать простейший обход через foreach:
<?php
foreach ($users as $user) {
   echo $user->name;
}
?>

Выполнение INSERT, UPDATE

Методы для вставки "insert" и обновления "update" записей в базу применяются так:
<?php
   DB::insert('insert into users (id, login) values (?, ?)', [1, 'admin']);
   DB::update('update users set votes = 100 where name = ?', ['John']);
?>
При этом метод обновления значений "update" возвращает количество обновлённых строк (число).

Выполнение DELETE, STATEMENT

Метод "delete" удаляет записи из базы данных. При этом возвращает количество удалённых записей. Попробуем удалить пользователя с id равным 1:
<?php
   $cnt = DB::delete('delete from users where id = ?', [1]);
?>
Если возвращать количество не нужно, то можно воспользоваться методом "statement":
<?php
   DB::statement('delete from users where id = ?', [1]);
?>
Метод statement можно использовать для любой операции, возвращать данные которой не нужно.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб