2017-06-15 8 views
0

Ich beabsichtige, Laravel db Update zu verwenden, die äquivalent zu SQL.DB :: Update Laravel 5 rohe Abfrage

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

Dies ist die Abfrage, die ich testen möchte. Irgendwas falsch?

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

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

Antwort

1

Der bessere Weg, das zu tun mit Laravel Query Builder ist:

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

Die richtigen Wege DB :: update to Call Sie so etwas wie dieses

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

Diese brauchen sollte die Anzahl der betroffenen Zeilen zurückgeben

0

Sie verwenden rohe qu ery, kann es als

Benutzer username = "admin" gesetzt Update durchgeführt werden, status = "aktiv", wo user_id = 1

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

ODER

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

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

Die richtige Abfrage wäre

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

ODER

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

Dabei ist "Benutzer" der Modellname der Tabelle "Benutzer".

3

Sie sollten Ihre Abfrage aktualisieren:

Eloquent Abfrage:

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

Fluent Abfrage:

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

Hoffnung, dies hilft Ihnen

+0

@TAN JIAN HUI Wenn meine Antwort ich s Ihre Lösung dann bitte meine Antwort akzeptieren. –