PHP。“INSERT INTO”通过PHP mysqli_query运行两次!

时间:2010-09-27 14:40:36

标签: php mysql insert

for($j = 0 ; $j < 87; $j++){

     echo $j.'<br/>';
     $unique = mt_rand(0,100000000);

    $insert_data = 'INSERT INTO uniques(uniq) VALUES ("'.$unique.'")';

        mysqli_query($conn , $insert_data);

        echo $unique.'<br />';

}

我只是想在表uniques中插入随机数。但是上面的代码有问题。当总循环低于86并且在循环超过86时获得两次插入时,它工作正常。

非常感谢!

我不是说我有重复的随机数。但似乎“INSERT INTO”在我的PHP代码中运行了两次!

2 个答案:

答案 0 :(得分:1)

mt_rand(0,100000000)只返回1100000000之间的随机数,它不会跟踪先前生成的随机数,因此您可以获得重复项。

如果您想确保只在数据库中插入唯一值,将必须保留生成的随机数的历史记录并继续调用mt_rand直到您获得一个独特的。

答案 1 :(得分:1)

由于您需要唯一的数字,您可以在此处找到帮助

的示例

http://www.php.net/manual/en/function.mt-rand.php#83365

或者,您可以使用where子句来避免重复,但如果要添加大量记录,这可能会很慢。