如何避免在mysql php中多次插入相同的记录

时间:2009-10-03 05:06:02

标签: php mysql

我正在使用php-mysql将值插入到表中,正确插入。通过ajax请求调用php中的插入文件。我的问题是在一些firefox版本中,请求在某些时候被触发两次,并且记录被插入表中相同数据的6次。如何在不使用独特概念的情况下防止这种情况......

4 个答案:

答案 0 :(得分:2)

这听起来就像SQL所做的一样。您不能一遍又一遍地使用相同的数据执行查询。

正如你所说的“在一些firefox版本中,请求被触发了两次”,问题最有可能出现在你的客户端代码中,发布该代码以便我们能够为你提供帮助。

(这应该是一个评论,但我对代表的评价太低了。)

答案 1 :(得分:0)

MySQL提供REPLACE命令,类似于INSERT,但默认忽略重复项。文档here

答案 2 :(得分:0)

使用jQuery可能对您有所帮助(如果您还没有)。您可以使用$(document).ready() event内置的jquery确保代码不会过早执行。

还要看一下触发ajax调用的内容,如果它的执行次数超出预期。您还可以进行一些服务器端检查,以确保尚未提交查询。

答案 3 :(得分:0)

因为您不想使用UNIQUE索引......

...通过在插入之前查询表来查看记录是否已存在,我意识到了类似的问题。我还实现了查找的时间限制。

所以这就是我的所作所为:

  1. 我检查数据是否对表格中的插入有效。
  2. 我将这些精确数据用于表格中的选择,仅限于过去5分钟内的所有条目。
  3. 如果select没有返回结果,我将数据插入表中,否则我将其忽略为“dublicate entry”。