Mysql
 sql >> Baza danych >  >> RDS >> Mysql

sprawdź zduplikowany wpis vs użyj wyniku PDO errorInfo

Możesz to wykonać za pomocą bloku try catch:

try {
   $prep->execute($values);
   // do other things if successfully inserted
} catch (PDOException $e) {
   if ($e->errorInfo[1] == 1062) {
      // duplicate entry, do something else
   } else {
      // an error other than duplicate entry occurred
   }
}

Możesz również przyjrzeć się alternatywom, takim jak „INSERT IGNORE” i „INSERT… ON DUPLICATE KEY UPDATE” – chociaż myślę, że są one specyficzne dla MySQL i byłyby sprzeczne z przenośnością używania PDO, jeśli jest to coś, o co się martwisz .

Edycja:Aby bardziej formalnie odpowiedzieć na twoje pytanie, rozwiązanie nr 1 (programista defensywny) w pełnym użyciu skutecznie eliminuje punkt unikalnego ograniczenia. Zgadzam się więc z Twoją myślą, że MySQL zajmie się sprawdzaniem danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernacja — ClassNotFoundException:com.mysql.jdbc.Driver

  2. Zainstaluj MySQL na Ubuntu 14.04

  3. PHP — Azure mySQL w aplikacji zmieniane losowo porty

  4. Przesyłanie pliku CSV w celu obsługi aktualizacji statusu i wstawiania nowych rekordów

  5. Konwertuj datę na format daty MYSQL