DB :: update laravel 5原始查询

时间:2017-06-15 05:31:07

标签: php sql database laravel eloquent

我打算使用相当于sql的laravel db update。

update users set username = "admin", status = "active" where user_id = 1

这是我测试运行的查询。怎么了?

$username = "admin";
$status = "active";

DB::update('update users set username = '  .$username. ',
status = '.$status.'  where user_id = ?' ,['1']);

5 个答案:

答案 0 :(得分:7)

您应该更新您的查询,如:

雄辩查询:

User::where('user_id',1)->update(array(
                         'username'=>$username,
));

流利的查询:

DB::table('users')->where('user_id',1)->update(array(
                                 'username'=>$username,
));

希望这有助于你

答案 1 :(得分:3)

正确的查询将是

DB::update('update users set username = ? , status = ? where user_id = ?', ["admin" , "active" , 1]);

OR

User::where('user_id', 1)->update( array('username'=>'admin', 'status'=>'active') );

其中“User”是“users”表的型号名称。

答案 2 :(得分:1)

使用laravel查询构建器执行此操作的更好方法是:

DB::table('users')
    ->where('user_id', 1)
    ->update(['username' => $username, 'status' => $status]);

答案 3 :(得分:1)

您正在使用原始查询,可以将其作为

更新用户设置用户名="管理员",状态="有效" user_id = 1

DB::table('users')
->where('user_id',1)
->update(['username'=>'admin','status'=>'active']);

OR

$username = "admin";
$status = "active";

DB::update(DB::RAW('update users set username = '  .$username. ',
status = '.$status.'  where user_id = ?' ,['1']));

答案 4 :(得分:0)

调用 DB :: update 的正确方法,你需要这样的东西

      $username = "admin";
      $status = "active";
      DB::update('update users set username = ? , status = ? where user_id = ?', [$username , $status , 1]);

这应该返回受影响的行数