ошибка в таблице обновлений с помощью ON DUPLICATE KEY UPDATE

Я читаю и храню rss-канал в своей базе данных, мое требование – если поле ссылки такое же, как и заголовок и описание обновления только в базе данных.
Я использую ON DUPLICATE KEY UPDATE, но после ввода query.its вставляют только отдельные данные в базу данных и сбой и показывают ошибку

мой код

<?php include_once 'db.php'; $homepage = file_get_contents('http://rss.cnn.com/rss/edition_us.rss'); $movies = new SimpleXMLElement($homepage); foreach($movies->channel->item as $opt){ $title= $opt->title; $tittle=mysql_real_escape_string($title); $link=$opt->link; $links=mysql_real_escape_string($link); $des=$opt->description; $dess=mysql_real_escape_string($des); "INSERT INTO store_feed (title, link, description) VALUES ('$tittle','$links','$dess')"; $sql="ON DUPLICATE KEY UPDATE title= '$tittle',description='$dess'"; $result=mysql_query($sql) or die( mysql_error() ); } ?> 

и структура таблицы: –

  CREATE TABLE `test_om`.`store_feed` ( `id` INT NOT NULL AUTO_INCREMENT , `title` VARCHAR( 200 ) NOT NULL , `link` VARCHAR( 200 ) NOT NULL , `description` VARCHAR( 500 ) NOT NULL , `feedburner` VARCHAR( 200 ) NOT NULL , PRIMARY KEY ( `id` ) , UNIQUE ( UNIQUE KEY `link` (`link`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

и ошибка Duplicate entry 'http://rss.cnn.com/~r/rss/edition_us/~3/Wl1V4JsNqDU/index.html' для ключевой ссылки '

Я сделал некоторые изменения в моем запросе, коротко.

  <?php include_once 'db.php';//config file $homepage = file_get_contents('http://rss.cnn.com/rss/edition_us.rss');//link of rss feed page $movies = new SimpleXMLElement($homepage); foreach($movies->channel->item as $opt){ $sql="INSERT INTO store_feed SET `title` = '".mysql_real_escape_string($opt- >title)."', `link`='".mysql_real_escape_string($opt->link)."', `description`='".mysql_real_escape_string($opt->description)."'" ."ON DUPLICATE KEY UPDATE `title`='".mysql_real_escape_string($opt->title). "',`description`='".mysql_real_escape_string($opt->description)."'"; $result=mysql_query($sql) or die( mysql_error() ); } ?> 

и его решить мою проблему ….

Related of "ошибка в таблице обновлений с помощью ON DUPLICATE KEY UPDATE"

INSERT … ON DUPLICATE должен быть одним запросом:

 $sql="INSERT INTO store_feed (title, link, description) VALUES ('$tittle','$links','$dess')" ." ON DUPLICATE KEY UPDATE title= '$tittle',description='$dess'"; $result=mysql_query($sql) or die( mysql_error() ); 

Вы забыли обновить поле link которое вызывает конфликт.