web-dev-qa-db-ja.com

DB :: update laravel 5 rawクエリ

私はlaravel sqlと同等の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
JohnnyCc

次のようにクエリを更新する必要があります。

Eloquent Query:

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

Fluent Query:

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

これがあなたを助けることを願っています

正しいクエリは

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」テーブルのモデル名です。

3
Anwar Khan

laravel=クエリビルダーでこれを行うより良い方法は:

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

あなたは生のクエリを使用しています、それは次のように行うことができます

ユーザーを更新しますユーザー名= "admin"、ステータス= "アクティブ"、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']));
2
Rahul

正しい呼び出し方法DB :: updateこのようなものが必要です

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

これにより、影響を受ける行の数が返されます。

0
Saad Bhutto