Mysql
 sql >> база данни >  >> RDS >> Mysql

mysqli вмъкване - но само ако не е дубликат

Помислете за поставяне на 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() . Ако беше даден идентификационен номер, той беше въведен. Ако не, значи имейлът вече е бил там (или е имало друга грешка).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. какво наистина прави mysql_real_escape_string()?

  2. MySQL Изберете група записи въз основа на последното времеви печат

  3. mysql база данни автоматично разделяне

  4. Как работи функцията TRIM() в MySQL

  5. VS 2019 и MySQL Entity Framework дублира името на базата данни