Michael St Clair
Michael St Clair

Reputation: 6625

mysql insert query, trouble with auto-increment field

Here is my query

INSERT INTO faq (order, heading, content)
VALUES ('$_POST[order]','$_POST[heading]','$_POST[content]')

I have a field before it called ID that I set to auto increment and INT

I get this error "Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order, heading, content) VALUES ('Order','Title','content')' at line 1"

Is there something I am missing, it works just fine if the ID field doesn't exist?

Upvotes: 2

Views: 251

Answers (1)

beiller
beiller

Reputation: 3135

order is a sql keyword. You need to use backticks to escape the word order

INSERT INTO faq (`order`, `heading`, `content`)
VALUES ('$_POST[order]','$_POST[heading]','$_POST[content]')

Also you should escape those $_POST parameters instead of inserting them directly into your SQL query:

$order = mysql_real_escape_string($_POST['order']);
...
INSERT INTO faq (`order`, `heading`, `content`)
VALUES ('$order','$heading','$content')    

Upvotes: 7

Related Questions