基本上,我创建了一个 SQL 查询以在数据库中插入大约 5000 个随机数$i
(目前是 10 个只是为了弄清楚)。
我以前尝试只在 MYSQL 中完成,但失败了,不想再浪费时间了。
它随机化一个 10 位数字,并与数组 ( $codes
) 交叉检查该数字,该数组包含来自数据库中不同表的超过 100,000 个值。它还将新的随机数添加到新数组 ( $newNumbers
) 中,因此它不会生成相同的新数字,然后将这些数字添加到 INSERT 查询中。它还有一个嵌套while
循环来创建第二个数字,它也必须是完全唯一的。
希望这是有道理的..无论如何,问题似乎出在嵌套的 while 中,它似乎是无限循环(而不是增加$i
),但我不知道为什么。
$query = "INSERT INTO 'table' ('num_id', `num1`, `num2`) VALUES";
$i = 0;
while ($i <= 10){
$rand = mt_rand(1000000000, 9999999999);
if (!in_array($rand, $codes) && !in_array($rand2, $newNumbers) ){
$newNumbers[] = $rand;
$second = 0;
while ($second == 0){
$rand2 = mt_rand(1000000000, 9999999999);
if (!in_array($rand2, $codes) && !in_array($rand2, $newNumbers) ){
$query .= " ('', $rand, $rand2)";
$newNumbers[] = $rand2;
$second = 1;
$i++;
}else
$duplicates ++;
}//end second loop
}else
$duplicates ++;
}//while