I understand the thought behind the query above but the final syntax is invalid. Why do you have a semicolon before the end double quotes? This query would not run in any instance much less this class.
$sql.= "INSERT INTO `forum-log` (date,event) VALUES($date, 'FORUM_POST_ADD');";
The only issue with this is your syntax is invlaid. Why would anyone put a semicolon before the double quote? There is no justification for the first semincolon.