2017-07-14 35 views
0

兩個領域我想比較移動或電子郵件字段存在於數據庫應該更新行其他插入行如何更新或插入比較來自數據庫

$ref = Ref::updateOrCreate(
    [ 
    'mobile' => $request['mobile'], 
    'email' => $request['email_address'] 
    ], 
    [ 
    'firstname' => $request['firstname'], 
    "lastname" => $request['lastname'],  
    "mobile" => $request['mobile'], 
    "email" => $request['email_address'], 
    "mobile_verified" => $req->session()->get('mobile_verified'), 
    "quiz_data" => $req->session()->get('quiz_data'), 
    "verification_token" => $req_token 
    ] 
); 

回答

0

做這樣

$result= DB::statement("INSERT INTO table_name 
     (firstname,lastname,mobile,email,mobile_verified,quiz_data,verification_token) 
     VALUES ('".$request['firstname']."','".$request['lastname']."','".$request['mobile']."','" 
     .$request['email_address']."','".$req->session()->get('mobile_verified')."','" 
     .$req->session()->get('quiz_data')."','".$req_token."',) 
     ON DUPLICATE KEY UPDATE mobile = VALUES(mobile),email = VALUES(email);"); 

用您的表名替換table_name並嘗試。
這裏你的mobileemail將被更新,如果數據存在之前。

+0

@Akki你試過這個嗎? –

0

在任何一個字段上都沒有Laravel函數進行比較,您將不得不手動執行兩個查詢。

// Find an existing Ref 
$ref = Ref::where('mobile', $request['mobile']) 
    ->orWhere('email', $request['email_address']) 
    ->first(); 

// Test if exists 
if (isset($ref)) 
{ 
    $ref->update([ 
     // Update fields 
    ]); 
} 
else 
{ 
    $ref = Ref::create([ 
     // Create fields 
    ]); 
} 
相關問題