我需要一个为每个新用户创建随机密码和用户名的系统。
因此,我需要确保用户名是唯一的。
然而,我不明白为什么下面的代码不起作用。这不是语法问题。我只是无法从逻辑上找出我哪里出了问题。
无论如何,以下是我尝试过的:
$Password= randomPassword();
$Username = randomPassword();
$UsernameCheckQuery = mysql_query("SELECT * FROM users WHERE username = '".$Username."'");
while (mysql_num_rows($UsernameCheckQuery ) >= 1) {
$Username = randomPassword();
$UsernameCheckQuery = mysql_query("SELECT * FROM users WHERE username = '".$Username."'");
}
我知道这个话题出现在Stack Overflow和网络上的其他地方。然而,我看到的每个问题都使用了if
语句来检查用户名是否已经使用。在我的例子中,我看不出if
语句是如何工作的,因为randomPassword
函数可以生成两个已经存在于一行中的用户名。
尝试
while (true) {
$Username = randomPassword();
$UsernameCheckQuery = mysql_query("SELECT * FROM users WHERE username = '".$Username."'");
if (mysql_num_rows($UsernameCheckQuery ) < 1) {
break;
}
}
echo 'The generated username is '.$Username;