php - 更新数据库而不创建重复项

标签 php javascript mysql

我正在尝试从 Yahoo SQL API 检索 RSS 提要并通过 PHP 将其存储在一个文件中。这是代码:

if( filemtime($cache) < (time() - 10800) ) {

   if ( !file_exists(dirname(__FILE__) . '/cache') ) {
      mkdir(dirname(__FILE__) . '/cache', 0777);
   }

   $path = "http://query.yahooapis.com/v1/public/yql?q=";
   $path .= urlencode("SELECT * FROM feed WHERE url='http://url'");
   $path .= "&format=json";

   $feed = file_get_contents($path, true);

   if ( is_object($feed) && $feed->query->count ) {
      $cachefile = fopen($cache, 'wb');
      fwrite($cachefile, $feed);
      fclose($cachefile);
   }
}
else {
   $feed = file_get_contents($cache);
}

问题是。现在我想将结果存储在数据库中。但是因为我将它存储在文件中并在 3 小时内更新它,所以我确信我会遇到重复的 RSS 条目。而且我不想将这些重复项存储在数据库中。

是否有一些有效的方法来完成这项工作?

最佳答案

或者您在 url 上添加一个唯一索引,这样如果 url 已经存在,则不会添加插入。

您可以使用 INSERT INGORE INTO ... 来忽略 mysql 给您的错误

关于php - 更新数据库而不创建重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931657/

相关文章:

php - Mysql请求-具体时间跨度(unix时间戳)

php - sql表中添加空白条目并刷新页面

MySQL 更新内容(如果存在)

php - 从一行SQL查询中的数字中减去 "1"

php - 如何在提交时使输入字段只读并将表单数据保留在字段中?

javascript - Angularjs 可折叠表与 php mysql

php - 在现有项目上安装 laravel

javascript - nextSibling 而不是 nextElementSibling?

javascript - 如何使用 ng-init 和 ng-repeat

javascript - 如果安装了插件,如何检查 Firefox 和 Chrome