检查用户名是否存在

时间:2009-08-30 22:05:31

标签: php mysql

我为我的网站制作了一个注册脚本,我想检查db中是否已存在$ _POST ['username']。

有更好的,更少的代码方式吗?我也是这样做的电子邮件。

这就是现在的样子:

$checkusername = mysql_query("SELECT username FROM users WHERE username = '$_POST[username]'");
$row83 = mysql_fetch_assoc($checkusername);

if ($_POST['username'] == $row83['username']) die('Username already in use.');

3 个答案:

答案 0 :(得分:4)

在您的桌子上添加unique constraint

alter table users
add unique (username)

然后,您的insertupdate语句将失败:

mysql_query("insert into users (username) values ('$username')")
   or die('Username exists');

当然,代码的一个更大问题是您没有阻止SQL注入。你的代码应该是:

$username = mysql_real_escape_string($_POST['username']);
mysql_query("insert into users (username) values ('$username')")
   or die('Username exists');

答案 1 :(得分:0)

既然你已经在sql调用中检查了用户名,那么你真的只需要查看是否在php方面返回了一条记录

$row83 = mysql_query($checkusername);
if (mysql_num_rows($row83) == 0) die('Username already in use.');

答案 2 :(得分:0)

如果在数据库中将username设置为“unique”,则可以继续运行insert查询,该查询将失败(您可以处理)。电子邮件也是如此 - 让它“独一无二”。

This可能派上用场。