php - 阻止 php 中重复的用户名

标签 php mysql sql

我的网站刚刚有了一个基本的注册系统,但我不知道如何禁止重复的用户名,有人可以帮助我吗?

<?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);

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

关于php - 阻止 php 中重复的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379719/

相关文章:

PHP/MySQL 表动态链接

php - 如何制作私有(private)网址?

c# - 如何在Miniprofiler for asp.net core 2.0中禁用加载静态文件的显示

sql - 从 MySQL 中的日、月、年字段创建日期

javascript - 根据 WordPress 中的季节交换首页

php - jquery/php/mysql 采购订购系统需要帮助

mysql - 这种情况下的最佳设计数据库

mysql - 将医疗数据表转换为 MySQL 数据库设计

mysql - SELECT DISTINCT 并计数

c# - 断开连接的 LINQ 使用触发器更新 : rowversion vs. 日期时间?