beginTransaction(); try { $stmt = $db->prepare("INSERT INTO marks (assessment_id, learner_id, marks_obtained) VALUES (:assessment_id, :learner_id, :marks_obtained) ON DUPLICATE KEY UPDATE marks_obtained = VALUES(marks_obtained)"); foreach ($marks as $mark) { $stmt->execute([ 'assessment_id' => $assessment_id, 'learner_id' => $mark['learner_id'], 'marks_obtained' => $mark['marks_obtained'] ]); } $db->commit(); return true; } catch (\Exception $e) { $db->rollBack(); return false; } } }