PHP / MySQL Insert [дубликаты]

0

Хорошо, я использовал PHP + MySQL некоторое время, поэтому считаю себя опытным. Я сделал свою долю синтаксических ошибок в прошлом, но это честно меня раздражает:

http://img251.imageshack.us/img251/3760/fubar.png

Если кто-нибудь скажет мне, почему это простое выражение не работает, я был бы очень благодарен.

  • 0
    на первый взгляд, в этом нет ничего плохого ... какую ошибку вы на самом деле получаете? Вы используете переменные вместо статического значения?
  • 0
    Определить «не работает». Вы использовали mysql_error ()? Что это говорит?
Показать ещё 2 комментария
Теги:
insert

3 ответа

6
Лучший ответ

На самом деле я вижу 1 ошибку... "Вариант" - зарезервированное слово. оберните его в backtics: `Option` или еще лучше, измените имя столбца на то, что не зарезервированное слово.

  • 0
    Именно проблема. Спасибо.
3

Используйте обратные ссылки для опции.

INSERT INTO poll (`Option`) VALUES ('Stuff')
  • 0
    Или просто сделайте INSERT INTO poll VALUES ('Stuff') . Нет необходимости указывать имя столбца.
  • 0
    @ Марк Снидович - это верно только в том случае, если вы планируете указывать значения для каждого столбца (и в правильном порядке столбцов). В общем, это не очень хорошая практика, потому что если вы решите добавить еще один столбец в таблицу позже, для какого-то другого сценария ... это нарушит это утверждение.
Показать ещё 1 комментарий
2

Глядя на код, который вы пытаетесь вставить в $_POST ['survey'], ваша вставка должна выглядеть так:

$vote = $_POST['survey'];

// connect to db

mysql_query(sprintf(
    "INSERT INTO poll (`Option`) VALUES ('%s')", 
    mysql_real_escape_string($vote)
);

Также обратите внимание, что "опция" является зарезервированным ключевым словом и должна находиться внутри обратных ссылок.

  • 0
    Вы забыли sprintf :)
  • 0
    @ Фанис: Боже, какой провал :-( Исправлено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню