2013-06-27 4 views
2

Вот мой запросMySQL вставки запроса, проблемы с полем автоинкрементного

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

У меня есть поле, прежде чем он называется идентификатор, который я поставил для автоматического приращения и INT

Я получаю эту ошибку «Ошибка : У вас возникла ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «порядком, заголовком, контентом». VALUES («Order», «Title», «content») 'at line 1 "

Есть ли что-то, что мне не хватает, оно работает нормально, если поле ID не существует?

+0

вы приняли меры против инъекций SQL? –

+0

Пожалуйста, прежде чем делать что-либо ** еще, прочитайте в [SQL escaping] (http://bobby-tables.com/). Вы не можете написать такой код. Когда-либо. Вы должны использовать современный интерфейс, например [PDO] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/), который поддерживает значения заполнителя и подготовленные заявления, чтобы сделать такие вещи без усилий. Если вы используете 'mysql_query', он устарел и будет удален из будущих версий PHP. – tadman

+0

Я использую mysqli_query –

ответ

7

заказ - ключевое слово sql. Вам нужно использовать кавычку, чтобы избежать порядка слов

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

Также вы должны избежать этих $ _POST параметры вместо того, чтобы вставить их непосредственно в SQL запрос:

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

Итак, я сделал этот код $ order = mysql_real_escape_string ($ _ POST ['order']); $ heading = mysql_real_escape_string ($ _ POST ['heading']); $ content = mysql_real_escape_string ($ _ POST ['content']); $ sql = "INSERT INTO faq (' order', 'heading',' content') VALUES ('$ order', '$ heading', '$ content') "; но вставить пустые поля в таблицу –

+0

Что оценивает ваша строка запроса до того, как вы запустите ее? – tadman

+0

Я проверил, и переменные не настроены ни на что. Я повторил их, и они ничего не отображают. –