Você precisa colocar aspas em
$secpass
na consulta:$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Apenas para sua informação, há muitos outros problemas com seu código aqui. Os maiores são que o sal deve ser aleatório. Você pode armazená-lo no banco de dados ao lado da senha, mas ter um sal aleatório diferente para cada senha reduz massivamente o uso de tabelas de arco-íris.
Em segundo lugar, e este é um problema muito maior, você precisa escapar de suas variáveis usando
mysql_real_escape_string()
ou convertendo seu acesso ao banco de dados para usar PDO. Caso contrário, você está se abrindo para um mundo de dor na forma de ataques de injeção de SQL.