Considere poner un unique índice en esta tabla en particular. El siguiente código agregará el índice y eliminará los duplicados actuales:
ALTER IGNORE TABLE `RegisteredUsersTable` ADD UNIQUE INDEX unique_email (`UserEmail`);
Una vez agregado esto, use INSERT IGNORE o INSERT...ON DUPLICATE KEY UPDATE . Solo preformarán el inserto si no hay duplicados.
$mysqli->query("INSERT IGNORE INTO RegisteredUsersTable (UserName, UserEmail) VALUES ('".$newUserName."', '".$newUserEmail."')");
Mysql arrojará un error porque el correo electrónico ya está en la base de datos. Sin embargo, el comando IGNORAR le dice a la secuencia de comandos que no preste atención a los errores de esta consulta porque, en este caso, lo espera para una fila duplicada.
Además, existe una forma de alertar a su usuario con un mensaje de error o éxito, incluso con INSERT IGNORE . Usa MYSQL LAST_INSERT_ID() . Si se proporcionó una identificación, se insertó. Si no, entonces el correo electrónico ya estaba allí (o hubo otro error).