카테고리 없음
라라벨 쿼리 실행 후 성공 여부 체크 (특히 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('오류가 발생했습니다.');
}