Overweeg een unique
. te plaatsen index op deze specifieke tabel. De volgende code voegt de index toe en verwijdert alle huidige duplicaten:
ALTER IGNORE TABLE `RegisteredUsersTable` ADD UNIQUE INDEX unique_email (`UserEmail`);
Zodra dit is toegevoegd, gebruikt u INSERT IGNORE
of INSERT...ON DUPLICATE KEY UPDATE
. Ze zullen de invoeging alleen voorvormen als er geen duplicaten zijn.
$mysqli->query("INSERT IGNORE INTO RegisteredUsersTable (UserName, UserEmail) VALUES ('".$newUserName."', '".$newUserEmail."')");
Mysql geeft een foutmelding omdat de e-mail al in de database staat. Het IGNORE-commando vertelt het script echter dat het geen aandacht moet besteden aan fouten voor deze query, omdat u in dit geval een dubbele rij verwacht.
Er is ook een manier om uw gebruiker te waarschuwen met een fout- of succesbericht, zelfs met INSERT IGNORE
. Gebruik MYSQL LAST_INSERT_ID()
. Als er een ID werd gegeven, werd deze ingevoegd. Zo niet, dan was de e-mail er al (of was er een andere fout).