我需要一个系统,为每个新用户创建随机密码和用户名。
因此,我需要确保用户名是唯一的。
但是我无法弄清楚为什么下面的代码不起作用。这不是语法问题。我只是无法弄清楚我在逻辑上出错的地方。
无论如何,这是我尝试过的:
$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
函数可以生成两个已存在于行中的用户名。
答案 0 :(得分:1)
尝试
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;