PHP验证数据库中的重复数据

时间:2014-03-20 11:26:46

标签: php html

我希望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>';
    }
?>

1 个答案:

答案 0 :(得分:0)

MySQL字段可以具有属性UNIQUE。这只允许唯一的条目 - 这正是你想要的。阅读它。

ALTER TABLE `reg_member` ADD UNIQUE(`stunumber`);

当您尝试插入数据库中已有的数字时,MySQL会给您一个错误。 您可以使用mysql_errormysql_errno

检查该错误