Как найти повторяющуюся запись в указанном c столбце таблицы и перенаправить страницу с ошибкой в ​​MySQL? - PullRequest
0 голосов
/ 10 марта 2020

В базе данных есть таблица с именем "enrolled_students_info". Имеет 7 столбцов. Один из его столбцов установлен на UNIQUE. Если я введу повторяющееся значение в этом столбце, он не будет введен. Но все, что я хочу, это не вставлять целое поле в случае, если значение записи дублируется, и перенаправить на другую страницу (значения других столбцов могут повторяться). В прошлом я использовал следующий метод для перенаправления на другую страницу в случае, если значение повторяется, но в то время таблица состояла только из 1 столбца

if($con->affected_rows === 0){
  header("location:error.php");
}

Но теперь есть семь столбцов и этот метод не работает.

1 Ответ

1 голос
/ 10 марта 2020

Если вы попытаетесь вставить повторяющуюся запись в УНИКАЛЬНЫЙ или ПЕРВИЧНЫЙ КЛЮЧ, вы получите ошибку дублирующего ключа. Проверка на наличие этой ошибки (с помощью кода ошибки - см. этот ответ ) по-вашему является правильным способом обработки этой ошибки. Вы не получите вставленную дублированную строку.

Попытка к SELECT count(*) .. или любому другому постобработке никогда не вернет true, и поскольку предварительная INSERT зависит от условий гонки между ней, и соединение может быть одновременно вставлено. Никогда не делай этого. Используйте базу данных для управления параллелизмом, поскольку это то, для чего она предназначена.

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