카테고리 없음

라라벨 쿼리 실행 후 성공 여부 체크 (특히 UPDATE)

BIZLAB 2024. 5. 7. 20:43
DB::table('TB_Landing_Category')->update() 
메소드는 업데이트가 성공하면 영향을 받은 레코드 수를 반환하고, 실패하면 0을 반환합니다. 
따라서 만약 주어진 조건에 맞는 레코드가 이미 지정된 값과 동일한 값을 가지고 있다면, 
업데이트는 실행되지 않으므로 $result는 0을 반환할 것입니다. 
이는 실패한 것으로 간주되며, $result가 false가 됩니다.

따라서 주어진 코드에서 $result가 false를 반환하는 경우는 업데이트가 실패했을 때뿐만 아니라, 
조건에 맞는 레코드가 이미 지정된 값과 동일한 값을 가지고 있을 때도 해당됩니다.

 

 

$result = DB::table('TB_Landing_Category')
    ->where('idx', intval($pm_idx[$z]))
    ->update([
        'lc_title' => 'aaa',
        'lc_order' => 0,
    ]);

if ($result === false) {
    // 업데이트가 실패한 경우
    // 이 경우에는 업데이트가 실패했으므로 적절한 처리를 수행합니다.
} elseif ($result === 0) {
    // 업데이트가 성공했지만, 영향을 받은 레코드가 없는 경우
    // 이 경우에는 조건에 맞는 레코드가 이미 지정된 값과 동일한 값을 가지고 있는 것으로 간주됩니다.
    // 따라서 적절한 처리를 수행합니다.
} else {
    // 업데이트가 성공한 경우
    // 이 경우에는 업데이트가 성공했으며, 영향을 받은 레코드 수가 $result에 반환됩니다.
    // 추가적인 처리를 수행할 수 있습니다.
}

 

 

 

 

$return_message = new ReturnMessage();

try {
    //DB::enableQueryLog();
    $result = DB::table('TB_Table')
        ->where('idx', $request->input('idx'))
        ->update($input);
    //dd(DB::getQueryLog());

} catch (\Exception $e) {
    // 오류 발생 시 처리
    return $return_message->internalServerError('오류가 발생했습니다.');
}


if($result === false){
    return $return_message->completeSuccess('수정 되었습니다.');
}else{
    return $return_message->internalServerError('오류가 발생했습니다.');
}