我正在为我的站点制作一个注册脚本,我想检查 $_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.');
最佳答案
添加 unique constraint
放到你的 table 上:
alter table users
add unique (username)
然后,您的insert
或update
语句将失败:
mysql_query("insert into users (username) values ('$username')")
or die('Username exists');
当然,您的代码的一个更大问题是您没有阻止 SQL 注入(inject)。您的代码应该是:
$username = mysql_real_escape_string($_POST['username']);
mysql_query("insert into users (username) values ('$username')")
or die('Username exists');
关于php - 检查用户名是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1355037/