Laravel Database: Running Raw SQL Queries

Running A Select Query

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show a list of all of the application's users.
     *
     * @return Response
     */
    public function index()
    {
        $users = DB::select('select * from users where active = ?', [1]);

        return view('user.index', ['users' => $users]);
    }
}

Using Named Bindings

$results = DB::select('select * from users where id = :id', ['id' => 1]);

Running An Insert Statement

DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

Running An Update Statement

$affected = DB::update('update users set votes = 100 where name = ?', ['John']);

Running A Delete Statement

$deleted = DB::delete('delete from users');

Running A General Statement

DB::statement('drop table users');

Listening For Query Events

<?php

namespace App\Providers;

use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        DB::listen(function ($query) {
            // $query->sql
            // $query->bindings
            // $query->time
        });
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Laravel Database: Running Raw SQL Queries — Structure map

Clickable & Draggable!

Laravel Database: Running Raw SQL Queries — Related pages: