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';
}