如何防止sql数据库中的重复数据

时间:2016-04-02 14:02:01

标签: php html sql

我有一个表单,我将学生登录数据保存到数据库。该表单包括“admission_number”,“username”和“password”字段。如果录取号码已存在且用户尝试再次添加,我想显示错误。这是我用于插入记录的PHP代码。

<?php
        if(isset($_POST['submit']))
        {
        $server     = 'localhost';
        $username   = 'root';
        $password   = '';

        $course_code=$_POST['course_code'];
        $course_title=$_POST['course_title'];
        $course_units=$_POST['course_units'];
        $course_semester=$_POST['course_semester'];


        $con=($GLOBALS["___mysqli_ston"] = mysqli_connect($server,  $username,   $password));
        if(!$con)
        {
        exit('Error: could not establish connection to the server');
        }
        else
        {
        $con_db=((bool)mysqli_query($con, "USE esther"));
        if(!$con_db)
        {
        exit('Error: Failed to connect to the database');
        }
        else
        {
        if(!empty($course_code) && !empty($course_title) && !empty($course_units) && !empty($course_semester))
    {
        $insert="INSERT INTO `course_table` VALUES('', '".$course_code."' ,'".$course_title."','".$course_units."','".$course_semester."')";
        $query=mysqli_query($GLOBALS["___mysqli_ston"], $insert);   
        $dup_admission_number = mysql_query("SELECT admission_number FROM users_table WHERE admission_number = $admission_number");
    }
    if (@mysql_query($dup_admission_number)) {
        echo 'Your admission number is already in our database.';
    exit;
    }

        if($query)
        {
                echo 'course added successfully!';
                header("location:add_course.php");      
        }
        else { echo 'Error while adding Course.'; }
    }
    else
    {
        echo '*** fields cannot be blank ***.';
    }
}
}
?>

2 个答案:

答案 0 :(得分:0)

要检查入场号是否唯一,您必须执行以下查询

$ sql:&#34;从student中选择id,其中admission_number =&lt;&gt;限制0,1&#34 ;;

如果此查询显示结果,那么您当前表单的录取号码不是唯一的。

您可以使用ajax请求执行此过程,也可以在插入查询进行处理之前进行检查。

或者您可以通过为入场号码提供唯一的密钥约束来在mysql中管理它。

答案 1 :(得分:0)

这是Mysql查询

    INSERT INTO sometable (data1, data2, data13) 
  SELECT 'username' FROM sometable
WHERE NOT EXISTS 
  (SELECT username FROM sometable WHERE login='someusername');