Помислете за поставяне на unique индекс на тази конкретна таблица. Следният код ще добави индекса и ще премахне всички текущи дубликати:
ALTER IGNORE TABLE `RegisteredUsersTable` ADD UNIQUE INDEX unique_email (`UserEmail`);
След като това се добави, използвайте INSERT IGNORE или INSERT...ON DUPLICATE KEY UPDATE . Те ще оформят предварително вложката само ако няма дубликати.
$mysqli->query("INSERT IGNORE INTO RegisteredUsersTable (UserName, UserEmail) VALUES ('".$newUserName."', '".$newUserEmail."')");
Mysql ще изведе грешка, защото имейлът вече е в базата данни. Въпреки това, командата IGNORE казва на скрипта да не обръща никакво внимание на грешките за тази заявка, защото в този случай го очаквате за дублиран ред.
Освен това има начин да предупредите потребителя си със съобщение за грешка или успех, дори с INSERT IGNORE . Използвайте MYSQL LAST_INSERT_ID() . Ако беше даден идентификационен номер, той беше въведен. Ако не, значи имейлът вече е бил там (или е имало друга грешка).