Anda perlu memberi tanda kutip di sekitar $secpass
dalam kueri:
$newStudent = $dbh->exec ("INSERT INTO Student (uname, pass, fname, lname, email, currGrade) VALUES('$_POST[reguser]','$secPass','$_POST[regfirst]','$_POST[reglast]','$_POST[regemail]','$_POST[regclassrank]')");
Sekedar informasi, ada banyak masalah lain dengan kode Anda di sini. Yang terbesar adalah garam itu harus acak. Anda dapat menyimpannya di database di sebelah kata sandi tetapi memiliki garam acak yang berbeda untuk setiap kata sandi secara besar-besaran mengurangi penggunaan tabel pelangi.
Kedua, dan ini adalah masalah yang jauh lebih besar, Anda harus keluar dari variabel Anda menggunakan mysql_real_escape_string()
atau dengan mengubah akses database Anda untuk menggunakan PDO. Jika tidak, Anda membuka diri ke dunia yang menyakitkan dalam bentuk serangan injeksi SQL.