如何使用 db::raw 在 Laravel Fluent 上更新查询?
laravelphpserver side programming更新于 2025/7/4 5:52:17
当您想要在 Fluent 查询构建器中测试或使用任意字符串时,可以使用 db::raw。
要使用 db::raw,您必须使用 DB Facade 类 -
use Illuminate\Support\Facades\DB;
以下是一些展示 DB:raw() 用法的示例。
示例 1
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { DB::table('users') ->where('id', 2) ->update(['name' =>DB::raw("'Heena Khan'")]); $user = DB::table('users')->find(2); print_r($user); } }
由于我们希望将字符串传递给 name,因此我们在 DB::raw 中使用字符串,如下所示 -
update(['name' => DB::raw("'Heena Khan'")]);
输出
上述代码的输出为 -
stdClass Object( [id] => 2 [name] => Heena Khan [email] => J17NQEuksw@gmail.com [email_verified_at] => [password] => hkGekGafje [remember_token] => [created_at] => [updated_at] => )
示例 2
另一个示例是在 DB::update 中使用 DB::raw(),如下所示 -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { $name = '"Seema"'; $test = DB::update(DB::raw('UPDATE users SET name='.$name.' WHERE id =3')); $user = DB::table('users')->find(3); print_r($user); } }
输出
上述代码的输出如下 -
stdClass Object( [id] => 3 [name] => Seema [email] => SZJj8osSc1@gmail.com [email_verified_at] => [password] => pDqluHE2x8 [remember_token] => [created_at] => [updated_at] => )
示例 3
我们正在利用DB::statement来执行查询-
<?php namespace App\Http\Controllers;use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { $name = '"Neha Singh"'; $test = DB::statement(DB::raw('UPDATE users SET name='.$name.' WHERE id =4')); $user = DB::table('users')->find(4); print_r($user); } }
输出
上述代码的输出是 −
stdClass Object( [id] => 4 [name] => Neha Singh [email] => KBc9tUG3pp@gmail.com [email_verified_at] => [password] => jyfM24HRSd [remember_token] => [created_at] => [updated_at] => )
示例 4
在下面的示例中,DB::raw 在 DB::select 内部使用,并且上述代码的输出如下所示 -
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\DB; class UserController extends Controller{ public function index() { $name = '"Neha Singh"'; $test = DB::select(DB::raw('SELECT * FROM users WHERE id=1')); print_r($test); } }
输出
Array(
[0] => stdClass Object(
[id] => 1
[name] => Siya Khan
[email] => zt6EovRjV7@gmail.com
[email_verified_at] =>
[password] => yhka61wZeS
[remember_token] =>
[created_at] =>
[updated_at] =>
)
)

