обработка дубликатов записей в mysql Вставка выражения

У меня есть php-форма для ввода данных в базу данных mysql, мой вопрос в том, как я обрабатываю повторяющиеся записи, например, если идентификационный номер уже существует, как я могу проверить, если exsists тогда, если он выдает сообщение об ошибке, ID уже находится в базе данных ", вот пример инструкции insert, однако я бы хотел, чтобы он проверял базу данных для дубликатов записей перед входом

$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) { die('Invalid query: ' . mysql_error()); } 

Related of "обработка дубликатов записей в mysql Вставка выражения"

Пока есть подходящий UNIQUE KEY или PRIMARY KEY в поле, которое должно быть уникальным, вы получите сообщение об ошибке при попытке вставить дублируемую запись. Затем вы можете проверить эту ошибку в своем коде.

 $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()); } } 

сделайте select like: select count (loan_id) из load, где load_id = $ values ​​[loan_id], чем если результат> 0 не вставлять и предоставлять пользователю сообщение об ошибке «ID уже в базе данных», иначе вставьте его.

eigther перед установкой или выполнением и обновлением.

проверить

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

Обновить

 "INSERT INTO loan (loan_id, some_field) VALUES ('". $values['loan_id'] ."', '". $values['some_field'] ."') ON DUPLICATE KEY UPDATE some_field = VALUES(some_field)"; 

Добавьте уникальное ограничение индекса в столбец loan_id. MySQL будет вызывать ошибку, когда ваше приложение пытается вставить другую строку с тем же значением.

SQL будет выглядеть примерно так:

 CREATE UNIQUE INDEX loan_id_index ON table_name (loan_id);