Teaching a man how to fish.
If a query fails, the first thing you should do is to echo the query you're about to send:
$sql = "INSERT INTO site_news_comments (articleid,title,short,comment,timestamp,userid,main,type,topstory) VALUES ($article,'".clean($commentss['title'])."','','".mysql_real_escape_string($_POST['comment'])."',current_timestamp,'".USER_ID."','0','".$commentss['type']."','')";
echo $sql;
It's usually pretty obvious what's wrong with the final query; pay particular attention to the dynamic stuff in your query and generally around the area where MySQL complains about.
If that still looks okay, then you look for words that might need escaping, such as the reserved words.
Conclusion
Having looked at the code mysql, I would have to conclude that the problem lies with $article and it causes problems in your query. You should probably escape it as well, just in case :)
Recommendation
You should learn about PDO / mysqli and using prepared statements:
// PDO example
$stmt = $db->prepare('INSERT INTO site_news_comments (articleid, title, short, comment, timestamp, userid, main, type, topstory) VALUES (:article, :title, :short, :comment, CURRENT_TIMESTAMP, :user, :main, :type, :topstory)');
$stmt->execute(array(
':article' => $article,
':title' => $commentss['title'],
':short' => '',
':comment' => $_POST['comment'],
':user' => USER_ID,
':main' => 0,
':type' => $commentss['type'],
':topstory' => '',
));