Изучение различных методов выполнения необработанных запросов с параметрами в Laravel

При работе с Laravel могут возникнуть случаи, когда вам потребуется выполнить необработанные SQL-запросы с параметрами. Это обеспечивает гибкость и контроль над операциями вашей базы данных. В этой статье мы рассмотрим различные методы выполнения необработанных запросов с параметрами в Laravel, а также приведем примеры кода.

Метод 1: Использование DB::select()
Метод DB::select()позволяет выполнять необработанные запросы с параметрами в Laravel. Вот пример:

$results = DB::select('SELECT * FROM users WHERE status = ?', ['active']);

Метод 2: использование DB::statement()
Метод DB::statement()полезен для выполнения необработанных запросов, которые не возвращают набор результатов, например INSERT, UPDATEили DELETE. Вот пример:

DB::statement('INSERT INTO users (name, email) VALUES (?, ?)', ['John Doe', 'john@example.com']);

Метод 3: использование DB::insert(), DB::update() и DB::delete()
Laravel предоставляет специальные методы для выполнения распространенных операторов SQL. Эти методы автоматически обрабатывают привязки параметров. Вот несколько примеров:

Вставьте оператор:

DB::insert('INSERT INTO users (name, email) VALUES (?, ?)', ['John Doe', 'john@example.com']);

Заявление об обновлении:

DB::update('UPDATE users SET name = ? WHERE id = ?', ['Jane Doe', 1]);

Удалить оператор:

DB::delete('DELETE FROM users WHERE id = ?', [1]);

Метод 4: Использование DB::raw()
Метод DB::raw()позволяет включать в запросы необработанные выражения SQL. Его часто используют для сложных запросов или когда необходимо выполнить вычисления. Вот пример:

$results = DB::table('users')
            ->select(DB::raw('COUNT(*) as user_count'))
            ->where('status', '=', 'active')
            ->get();

В этой статье мы рассмотрели несколько методов выполнения необработанных запросов с параметрами в Laravel. Эти методы обеспечивают гибкость и контроль над операциями базы данных. Используя эти методы, вы можете использовать возможности необработанных SQL-запросов, сохраняя при этом возможности и преимущества платформы Laravel.