Задать вопрос
night_amir
@night_amir

Автоинкрементное поле в базе MySQL

Пытаюсь выполнить запрос:
$sql_add = "INSERT INTO CHAT_MSG VALUES ('', ".$forum_user_id.", '".$msg."', '1', ".intval(time()).", '".$priv."')";

Первое поле автоинкрементное. Раньше так прокатывало. При вставке строки значение увечиливалось на 1 и строка вставлялась. После переезда на виндовый сервер это перестало работать.

Подскажите, как решить?
  • Вопрос задан
  • 5204 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
night_amir
@night_amir Автор вопроса
В автоинкрементное поле надо было передавать null.
esin, спасибо что откликнулся! :)
Ответ написан
Мне больше нравится синтаксис
INSERT INTO
    table_name
SET
    field1 = "val1",
    field2 = "val2"
Ответ написан
Комментировать
esin
@esin
Попробуйте указывать поля таблицы, в которые заносятся значения при инсерте (при это автоинкрементное поле не указывайте).
Например, пусть field0 — автоинкрементное поле в таблице table
INSERT INTO TABLE(field1, field2, fileld3) VALUES (value1, value2, value3);
Ответ написан
Комментировать
@Xenkok
Так же, есть ещё одно правило — необязательное, но его следует придерживаться во избежание появления ошибок:
Имена полей и таблиц следует заключать в обратные одинарные кавычки — "`" (клавиша с этим символом находится на стандартной клавиатуре слева от клавиши «1») Ведь имя поля может совпадать с ключевыми словами mysql, но если мы используем обратную кавычку, то MySQL поймёт всё правильно:

SELECT * FROM `table` WHERE `date` = '2006-04-04'

сайт phpfaq.ru

— это к слову.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы