Не зная СУБД, я не могу быть уверен на 100%, но похоже, что вы смешали синтаксис для вставки и команды обновления.Правильный синтаксис для обновления должен быть следующим:
UPDATE tblclasses
set
classname = ?,
department = ?,
classum = ?,
grade = ?,
credits = ?
WHERE classID = $id
Кроме того, для чего бы это ни стоило, вы также должны иметь возможность передавать переменную $id
в качестве параметра, а не интерполировать ее.Теоретически это будет лучше для базы данных, так как она будет компилироваться один раз и выполнять один и тот же оператор SQL снова и снова, только с разными значениями переменной связывания:
my $check = qq{
UPDATE tblclasses
set
classname = ?,
department = ?,
classum = ?,
grade = ?,
credits = ?
WHERE classID = ?
};
my $sth = $dbh->prepare($check);
$sth->execute($className, $department, $classnum, $grade,$credits, $id);