我的用户数据库中有一个字段,这是一个在注册时生成的6位数字。我使用mt_rand(100000, 999999)
生成数字。
现在问题是,为了确保没有人获得相同的数字我需要使字段UNIQUE(我认为似乎是最好的)而不是一些PHP代码。也许还有其他一些我不知道的方式。问题是,最好的方法是什么?
答案 0 :(得分:2)
首先向该字段提供unique
约束。
if (mysqli_errno() == 2027)
mysqli_query("INSERT INTO ... {mt_rand()}");
因此,一旦插入重复值,它就会输出错误代码2027
,说明重复。您可以重新提交查询。
答案 1 :(得分:0)
你为什么不
答案 2 :(得分:0)
使用AUTO_INCREMENT
列。
执行查询以检查生成的数字是否已经存在是一个糟糕的解决方案,随着越来越多的用户注册因为使用了更多的数字而变得更糟,因此您需要跟踪所有生成的数字以始终生成有效数字。
使用AUTO_INCREMENT
列,会发生“自动”。