This question already has answers here:
How to check if a row exists in MySQL? (i.e. check if an email exists in MySQL)
                                
                                    (4个答案)
                                
                        
                                2年前关闭。
            
                    
而且我只是为我的网站提供了一个基本的注册系统,而且我不知道如何禁止重复的用户名,有人可以帮助我吗?

<?php
  if(!empty($_POST['email']) && !empty($_POST['password'])){
$query = "INSERT INTO users (name, email, password) VALUES (:name, :email, :password)";
$stmt = $conn->prepare($query);

$stmt->bindValue(':name', $_POST['name']);
$stmt->bindValue(':email', $_POST['email']);
$stmt->bindValue(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));

if( $stmt->execute() ){
  echo 'Success';
} else {
  echo 'Failure';
  print $stmt->errorCode();
}

}

?>

最佳答案

通过在表上定义唯一的索引/约束来防止重复的用户名:

create unique index unq_users_name on users(name);


任何试图插入或更新值而导致名称出现两次的尝试都将导致错误,并且插入将失败。

09-08 01:42