Overvej at sætte en unique indeks på denne særlige tabel. Følgende kode tilføjer indekset og fjerner alle aktuelle dubletter:
ALTER IGNORE TABLE `RegisteredUsersTable` ADD UNIQUE INDEX unique_email (`UserEmail`);
Når dette er tilføjet, skal du bruge INSERT IGNORE eller INSERT...ON DUPLICATE KEY UPDATE . De vil kun præforme indsættelsen, hvis der ikke er nogen dubletter.
$mysqli->query("INSERT IGNORE INTO RegisteredUsersTable (UserName, UserEmail) VALUES ('".$newUserName."', '".$newUserEmail."')");
Mysql vil give en fejl, fordi e-mailen allerede er i databasen. IGNORE-kommandoen fortæller dog, at scriptet ikke skal være opmærksom på fejl for denne forespørgsel, fordi du i dette tilfælde forventer, at det er en dubletrække.
Der er også en måde at advare din bruger med en fejl- eller succesmeddelelse, selv med INSERT IGNORE . Brug MYSQL LAST_INSERT_ID() . Hvis der blev givet et ID, blev det indsat. Hvis ikke, så var e-mailen der allerede (eller der var en anden fejl).