I'm trying out something new on my end that whenever I have a multiple query that inserts / update. I use database transaction for that matter.
$this->transaction->beginTransaction();
try {
$trucker_user->update([
'username' => $request->getParam('username'),
'first_name' => $request->getParam('first_name'),
'middle_name' => $request->getParam('middle_name'),
'last_name' => $request->getParam('last_name'),
'contact_number' => $request->getParam('contact_number'),
'email' => $request->getParam('email'),
'status' => ($trucker_id) ? 1 : $request->getParam('status')
]);
if ($trucker_id === false) {
$trucker_user->userTrucker()->update([
'trucker_id' => $request->getParam('trucker_id')
]);
}
$this->transaction->commit();
} catch(\Exception $e) {
$this->transaction->rollBack();
throw $e;
}
So the question is, is it a good practice when I have multiple query that inserts / update I shall be using database transaction for it?
I know it's a good idea to have a transaction when something bad happens it goes rollback. But whenever I use it always in multiple queries isn't a bit kind of overkill?