【问题标题】:How can I detect a duplicate post in PHP?如何检测 PHP 中的重复帖子?
【发布时间】:2011-08-26 20:59:37
【问题描述】:

我有一个将(文章的)文本插入数据库的表单。当用户提交一篇文章(已经提交)时,它也会被提交到数据库中。

如何检测重复的帖子(例如在 stackoverflow 上)?

我应该从数据库中选择所有内容并检查提交的帖子是否像以前的帖子。 (我想在文章页面上发布重复警报作为第一条评论)

任何帮助表示赞赏。

谢谢...

【问题讨论】:

  • 您可以将您的数据库内容与文章进行比较,看看是否有类似的记录。但是,当存在微小差异(额外或遗漏的字符)时,这将失败。
  • stackoverflow 系统由一组(可能非常复杂)匹配算法组成。复制并不容易。如果你真的想检查重复的内容,你应该看看 MySQL 中 MyISAM 表上的全文搜索。

标签: php duplicates duplicate-data


【解决方案1】:

创建一个唯一的 ID,例如使用uniq_id(),将其放在HTML 表单中的隐藏字段中,然后将其保存在数据库中设置为UNIQUE 的字段中。当INSERT操作失败时,就知道之前已经发送过POST了。

【讨论】:

  • 我爱你的解决方案伙伴。 :)
【解决方案2】:

如果您在尝试编辑某些内容时从 db 获得隐藏 id,您可以使用如下代码:

if (isset($_POST['id']) && trim($_POST['id']) != '') {
    $query = 'UPDATE table_name
                    SET
                      `key` = \'' .$_POST['key']  . '\'
                    WHERE `id` = \'' . $_POST['id'] . '\'', 0;
  } else {
    $query = 'INSERT INTO table_name
                                  SET
                                `key` = \'' . $_POST['key'] . '\'', 0;
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多