检查随机生成的用户名是否唯一


Check if randomly generated username is unique

我需要一个为每个新用户创建随机密码和用户名的系统。

因此,我需要确保用户名是唯一的。

然而,我不明白为什么下面的代码不起作用。这不是语法问题。我只是无法从逻辑上找出我哪里出了问题。

无论如何,以下是我尝试过的:

    $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;