handling duplicate records in mysql Insert statement

前端 未结 4 1843
被撕碎了的回忆
被撕碎了的回忆 2021-01-26 10:59

Im i have a php form to enter data into a mysql database, my question is how do i handle duplicate records for example if an ID number already exsists how do i check if exsists

相关标签:
4条回答
  • 2021-01-26 11:34

    Add a unique index constraint on the loan_id column. MySQL will throw an error when your application attempts to insert another row with the same value.

    SQL will look similar to:

    CREATE UNIQUE INDEX loan_id_index ON table_name (loan_id);
    
    0 讨论(0)
  • 2021-01-26 11:42

    do a select like : select count(loan_id) from load where load_id=$values[loan_id] than if result>0 don't insert and give error message "ID is already in the database" to user, otherwise insert it.

    0 讨论(0)
  • 2021-01-26 11:42

    eigther check before inserting or do and update.

    check

    "SELECT COUNT(*) FROM loan WHERE loan_id = '" . $values['load_id'] . "'"
    

    update

    "INSERT INTO loan (loan_id, some_field) VALUES ('". $values['loan_id'] ."', '". $values['some_field'] ."') ON DUPLICATE KEY UPDATE some_field = VALUES(some_field)";
    
    0 讨论(0)
  • 2021-01-26 11:52

    As long as there is a suitable UNIQUE KEY or PRIMARY KEY on the field that needs to be unique you will receive an error when you try to insert the duplicate record. You can then test for this error in your code.

    $values = $_POST;
    foreach ($values as &$value) {
        $value = mysql_real_escape_string($value);
    }
    
    $sql1="INSERT INTO loan (loan_id) VALUES ('$values[loan_id]')";
    
    $result = mysql_query($sql1);
    if (!$result) {
        if (mysql_errno() == 1586) {
            echo "ID is already in the database";
        } else {
            die('Invalid query: ' . mysql_error());
        }
    }
    
    0 讨论(0)
提交回复
热议问题