Приветствую. Имею таблицу с полями: id - primary, auto_increment title, description, somefield, unique - unique Запрос: Код (Text): insert into table (title, description, somefield, unique) values ('$title', '$description', '$somefield', '$unique') on duplicate key update `somefield` = '999' Если при обновление данных значение $somefield совпадает со значением в поле somefield с данными в уже имеющейся записи (обновляемся), то ошибка не выходит, если не совпадает, то выходит ошибка: Duplicate entry 'id первичного ключа' for key 'PRIMARY' Ошибка из-за 2-х уникальных полей происходит или глюк какой-то (тестирую в локалке)?
@marsik хмм а если убрать on duplicate key update `somefield` = '999' и нет совпадений ошибка происходит?
@marsik я имел ввиду несоответствие типов, но это наврятли. но уникален же столбец unique а не somefield те полагаю надо както так key update unique++ & скинь sql создание таблицы
первичный тоже уникальный, если гадать, то по всей вероятности из-за 2-х уникальных ключей, наверняка если на id оставить только auto_increment , то все заработает как хочется)) Забыл упомянуть, ошибку он дает, но он все таки меняет поле, но при этом выходит из цикла, а может просто нужно убрать вывод ошибки or die (mysqli_error($link));
загуглил, нашел что бывает в mysql такой глюк. советуют выполнить команду оптимизации или удалить/создать индекс заново или изменить(обычно увеличивают размер) тип поля. В общем как-нибудь модифицировать таблицу...