php - 检查用户名是否存在

标签 php mysql

我正在为我的站点制作一个注册脚本,我想检查 $_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)

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

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/

相关文章:

MySQL : Selecting alternative field if given field is empty

mysql - TIMESTAMPDIFF 在 mysql 中返回 blob

php - 通过 sqlsrv_connect() 连接到 mssql 数据库 - PHP

php - 在 cakephp3.0 内部错误的情况下强制用户注销

php - php 中的多个循环到 marge 目录和数据库

mysql select查询不返回任何内容

sql - 有关(另一个)SQL 查询的帮助

mysql - 为什么在 MySQL 中使用 20,000 年会有不同的结果

php - 如何在mysql中按季度对日期进行分组并在php中检索

php - 代码是否符合 Liskov 替换原则?