As a debugging practice, you should always echo your SQL query out so you can look at the entire query PHP sent to the server. In this case, I don't need to see that, as I can tell you what's going wrong, but keep that in mind for the future.
In MySQL queries, you never surround table names nor column names in quotes (of any kind). Notice that the details table name is surrounded by quotes; this isn't good. A correct query would look like this:
$query = "INSERT INTO details VALUES ('$FirstName', '$Email', '$CommentsTo', '$HearAbout');";
If you MUST surround the table name or column names with a character for whatever reason, use backticks ( ` ) like so:
$query = "INSERT INTO `details` VALUES ('$FirstName', '$Email', '$CommentsTo', '$HearAbout');";
Also, it looks as though you're taking POST'd data and putting it directly into a SQL query; begging for someone to do a SQL injection.
Search this board for the keywords 'SQL Injection' to learn more, including definitions and solutions.