【发布时间】:2014-01-13 15:07:50
【问题描述】:
我尝试使用 rand() 使其成为我在数据库中的唯一 ID。但是如何保证这个随机数不会重复呢?
<?php
$num = '';
for ($i = 0; $i < 9; $i++)
$num .= mt_rand(0, 9);
echo '<input name="counter" value="'.$num.'">';
?>
【问题讨论】:
-
<input name="counter" value="'.$num.'">不是有效的 PHP 代码。您应该使用print或echo。 -
@SharanyaDutta:当然不是。但很清楚 OP 试图做什么,
<input>元素与最初提出的问题几乎没有关系。 -
然后使用条件语句首先检查它是否在DB中,然后在
else如果找到它,重新生成另一个直到它不是重复的。您还可以将另一个选项 UNIX 时间戳与更快的rand()或mt_rand() -
请从头开始,准确描述您要使用此号码的目的。这个主题比您想象的要复杂,因此了解您的用例对于向您推荐您应该做什么至关重要。
-
最好让数据库中的字段自动递增,而不是尝试挑选出尚未使用的随机数。