You are writting your SQL incorrectly:
INSERT INTO users (username, password, fname, lname, age, email, city, state)
VALUES ('$username', '$password', '$fname', '$lname', '$age', '$email', '$city', '$state');
That is the correct syntax for an INSERT statement.
You don't have to include the list of fields after the table name if you put your values in the order that the fields were created, and you aren't leaving any fields blank.