检查重复的SQL或PHP?

时间:2012-11-13 15:41:39

标签: php sql

我的用户数据库中有一个字段,这是一个在注册时生成的6位数字。我使用mt_rand(100000, 999999)生成数字。

现在问题是,为了确保没有人获得相同的数字我需要使字段UNIQUE(我认为似乎是最好的)而不是一些PHP代码。也许还有其他一些我不知道的方式。问题是,最好的方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以使用PHP执行此操作。

首先向该字段提供unique约束。

if (mysqli_errno() == 2027)
    mysqli_query("INSERT INTO ... {mt_rand()}");

因此,一旦插入重复值,它就会输出错误代码2027,说明重复。您可以重新提交查询。

答案 1 :(得分:0)

你为什么不

  • 使用嵌套选择来获取max(user_id),增加它并为新用户使用该值?
  • 创建一个只保存当前用户ID的表,然后获取,增加并使用该值来创建新用户?
  • 使用AUTO_INCREMENT列?

答案 2 :(得分:0)

使用AUTO_INCREMENT列。

执行查询以检查生成的数字是否已经存在是一个糟糕的解决方案,随着越来越多的用户注册因为使用了更多的数字而变得更糟,因此您需要跟踪所有生成的数字以始终生成有效数字。

使用AUTO_INCREMENT列,会发生“自动”