我正在学习 PHP 并尝试正确使用 while 和 continue 表达式。
我有一个创建 6 位 PIN 的脚本,我想确保它是唯一的,否则我想生成另一个 PIN。
while(1) {
$pin = rand(111111,999999);
$sel = mysql_query("SELECT * FROM formusers WHERE pin = '$pin'");
if(mysql_num_rows($sel) != 0) { continue; }
mysql_query("INSERT INTO formusers(email,password,pin) VALUES('".$_POST['srEmail']."','".$_POST['srPass']."','".$pin."')");
if(mysql_affected_rows()!=-1) {
echo "Pin:" . $pin;
exit;
} else {
echo "Existing email, try again<br />";
}
break;
}
我的循环语法是否正确?它似乎有效,但我无法在 rand() 函数两次创建相同 PIN 的实例中对其进行调试。
此外,如果我确实用完了唯一 PIN,这里会发生什么?大概它会无限循环?有什么办法可以防止这种情况发生吗?