我希望StudentNumber
字段没有重复数据。例如,如果某人使用学生编号x
,则意味着不允许其他用户再次注册x
。然后验证说"用户已经存在。"
我该如何进行验证?
这是我的代码:
<?php
if(isset($_POST['submit'])){
if(preg_match('/^[a-zA-Z\s]+$/',$_POST['fn'])) {
if(preg_match('/^[A-Za-z\s-]+$/',$_POST['ln'])){
if(preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i',$_POST['email'])){
if(preg_match('/^[0-9]{1,}$/',$_POST['c_number'])){
$fn=$_POST['fn'];
$ln=$_POST['ln'];
$gender=$_POST['gender'];
$address=$_POST['address'];
$email=$_POST['email'];
$c_number=$_POST['c_number'];
$s_number=$_POST['sn'];
$College=$POST['collage'];
mysql_query("insert into reg_member (firstname,lastname,address,gender,email,c_number,date,stunumber,collage)
values('$fn','$ln','$address','$gender','$email','$c_number',NOW(),'$s_number','$College')
")or die(mysql_error());
?>
<script type="text/javascript">
alert('Youre Successfully Register Thank You');
window.location="index.php";
</script>
<?php
}
else {
echo'<script type="text/javascript"> alert(\'invalid contact number\');</script>';
}
}
else {
echo'<script type="text/javascript"> alert(\'invalid email\');</script>';
}
}
else {
echo'<script type="text/javascript"> alert(\'invalid last name\');</script>';
}
}
else {
echo'<script type="text/javascript"> alert(\'invalid first name\');</script>';
}
?>
答案 0 :(得分:0)
MySQL字段可以具有属性UNIQUE。这只允许唯一的条目 - 这正是你想要的。阅读它。
ALTER TABLE `reg_member` ADD UNIQUE(`stunumber`);
当您尝试插入数据库中已有的数字时,MySQL会给您一个错误。 您可以使用mysql_error和mysql_errno
检查该错误