В общем, я переделал скрипт, ушёл от этого цикла, обрабатываю rss поток через simplexml_load_file и всё такое. Завожу в базу через foreach ($rss->channel->item as $item)... И ничего не изменилось. Строки опять дублируются иногда. Я посмотрел настройки MySQL, ничего необычного не заметил. Я думаю, что тут дело либо с базой, либо с выполнением скрипта, либо я синтаксис где-то не замечаю что ли...
зачем? логично можно доллары на рубли разменять. наверняка это поможет при дублировании данных. вам уже сказали что делать надо. вы еще месяц можете делать ничего и у вас все равно будут дублироваться данные. как отладку проводили? отладку логики добавления. ведь в ней вся соль. ваш сценарий принимает решение о том что эти данные надо вставить. а ваша голова - что эти данные дублируют ранее вставленные. только через отладку вы можете сравнить что у вас в голове с тем что в оперативной памяти. для этого отладку и придумали. но можно еще корешки заваривать. поговаривают что тоже помогает при дублировании данных.
скрипт передаёт данные в единственном экземпляре и один нраз, судя по логам. я сделал поле с линком на статью уникальным в MySQL. Вопрос с дублированием решился.