Предотвратить дублирование записей классов в базе данных - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу предотвратить дублирование данных в моей базе данных. У меня есть два варианта, один для имени класса, а другой - код класса, но каждый раз, когда я выбираю одни и те же данные, они всегда вставляются в базу данных, я хочу, чтобы предотвратить дублирование

Это код, когда кнопка отправляется

Я хочу предотвратить дублирование данных, например, для ученика или введите и выберите класс 1 и код класса: 123, если учащиеся вводят этот класс 1 и код класса 123 опять же, студент не может войти в класс, потому что он / она уже был в классе.

if($selectTheclassroomcheck > 0){ 
    $row = mysqli_fetch_assoc($selectTheclassroom);
    $insertIntoTheClassParticipant = mysqli_query($connection, "INSERT INTO teacher_class_student (teacher_class_id,student_id, teacher_id, class_id) VALUES ('".$row['teacher_class_id']."','".$_SESSION['id']."','".$row['teacher_id']."','0')");
    if($insertIntoTheClassParticipant){
        echo json_encode(1); //You are successfully enter to class
    }
    else{
        echo json_encode(2);//Incorrect class
    }
}
else{
    echo json_encode(2);

}

?>

1 Ответ

1 голос
/ 18 апреля 2020

создать уникальный индекс для student_id, class, class_code (каким столбцам они соответствуют). Когда происходит вторая вставка этой комбинации, произойдет ошибка дубликата ключа. Поймайте это в своем приложении и отобразите сообщение об ошибке аппроксимации.

Используйте INSERT ... SELECT , чтобы приложение не делало этого.

Также прочитайте: Как я могу предотвратить SQL инъекцию в PHP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...