Here is a the meat of it.
I manged to speed it up a bit as I had the prepare statement inside the loop.
Lookin at it now I am thinking bingParam might make it faster. Thoughts?
$db_stmnt = $this->db->prepare('CALL SP_AddCTCourse(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)');
foreach ($data as $line) {
$course_data = explode($tab, $line);
$db_stmnt->bindValue(1, $course_data[0], PDO::PARAM_STR);
$db_stmnt->bindValue(2, $course_data[1], PDO::PARAM_STR);
$db_stmnt->bindValue(3, $course_data[2], PDO::PARAM_STR);
$db_stmnt->bindValue(4, $course_data[3], PDO::PARAM_STR);
$db_stmnt->bindValue(5, $course_data[4], PDO::PARAM_STR);
$db_stmnt->bindValue(6, $course_data[5], PDO::PARAM_STR);
$db_stmnt->bindValue(7, $course_data[6], PDO::PARAM_STR);
$db_stmnt->bindValue(8, $course_data[7], PDO::PARAM_STR);
$db_stmnt->bindValue(9, $course_data[8], PDO::PARAM_STR);
$db_stmnt->bindValue(10, $this->formatTermYear($course_data[9], '00000'), PDO::PARAM_STR);
$db_stmnt->bindValue(11, $course_data[10], PDO::PARAM_STR);
$db_stmnt->bindValue(12, $this->formatTermYear($course_data[11], '99999'), PDO::PARAM_STR);
$db_stmnt->bindValue(13, $course_data[12], PDO::PARAM_STR);
$db_stmnt->bindValue(14, $course_data[13], PDO::PARAM_STR);
$db_stmnt->bindValue(15, $course_data[14], PDO::PARAM_STR);
$db_stmnt->bindValue(16, $course_data[15], PDO::PARAM_STR);
$db_stmnt->execute();
}