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