Php 如何检测数据库中已使用的用户名

Php 如何检测数据库中已使用的用户名,php,Php,我希望这对你有所帮助 <?php if(isset($_POST["Add"])) { $name=$_POST["Emp_Username"]; $pass=$_POST["Emp_Password"]; $fname=$_POST["Emp_Fname"]; $lname=$_POST["Emp_Lname"]; $hph=$_POST["ContactNo_Home"]; $hp=$_POST["ContactNo_HP"]; $mail=$_POST["Emp_Emai

我希望这对你有所帮助

<?php

if(isset($_POST["Add"]))    
{

$name=$_POST["Emp_Username"];
$pass=$_POST["Emp_Password"];
$fname=$_POST["Emp_Fname"];
$lname=$_POST["Emp_Lname"];
$hph=$_POST["ContactNo_Home"];
$hp=$_POST["ContactNo_HP"];
$mail=$_POST["Emp_Email"];
$add=$_POST["Emp_Address"];
$age=$_POST["Emp_Age"];
$pos=$_POST["Position"];
$dept=$_POST["Dept_ID"];

mysql_query("
    insert into employee(Dept_ID, Emp_Address, Emp_Age, 
    Position, >Emp_Username, Emp_Password, Emp_Fname, Emp_Lname, 
    ContactNo_Home, ContactNo_HP, Emp_Email) 
    >values('$dept','$add','$age','$pos','$name','$pass','$fname',
    '$lname','$hph','$hp','$mail'>)
   ");

?>    

<script type="text/javascript">
alert("Record saved.");    
</script> 

<?php } ?>

在用户名字段上创建唯一密钥,然后检测错误号1062:

$query=mysql_query("select * from employee where Emp_Username=$name");
    $row=mysql_num_rows($query);
    if($row>0){
        echo 'user exist';
    }else{
        echo 'User not exist';
    }

一个简单的SELECT查询就足够了:

if (mysql_errno() == 1062) {
    print 'username taken!';
}

也许您应该在提交表单之前使用ajax验证字段“user”

SELECT COUNT(employee.Emp_Username) AS num 
FROM employee 
WHERE Emp_Username = 'USERNAME';

对数据库中的用户名列使用
UNIQUE
约束,在这种情况下,使用相同用户名插入将失败(返回错误)。然后在插入查询时检查错误。可能在DB级别没有唯一约束的情况下,这是一个竞争条件。两个连接同时请求给定的用户名,两个连接都得到了“无名称”的答案-都将注册唯一的名称-没有唯一约束的情况下,两个连接都将成功。在DB级别没有唯一约束的情况下,我知道这是一场比赛。但我的回答基于这样一个假设:数据库的设计是正确的。OP询问如何检测用户名是否已被检测到。他没有问如何防止重复的用户名。
$name = $_POST["Emp_Username"];
$results = mysqli_query($connecDB,"SELECT * FROM employee WHERE Emp_Username='$name'");
$name_exist = mysqli_num_rows($results);

if($username_exist) {
    echo 'busy';
}else{
    echo 'free';
}