sql >> Databasteknik >  >> RDS >> Mysql

kontrollera om det finns dubbletter av inmatningen kontra använd PDO errorInfo-resultat

Du kan köra detta med ett försöksfångstblock:

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
   }
}

Du kan också titta på alternativ som "INSERT IGNORE" och "INSERT... ON DUPLIKATE KEY UPDATE" - även om jag tror att de är MySQL-specifika och skulle gå emot portabiliteten att använda PDO, om det är något du är orolig över .

Edit:För att mer formellt svara på din fråga, för mig, eliminerar lösning #1 (den defensiva programmeraren) i full användning effektivt poängen med den unika begränsningen i första hand. Så jag håller med om din tanke om att låta MySQL ta hand om datakontroll.



  1. Bearbeta utf-8-data från MySQL i C++ och ge resultatet tillbaka

  2. reverse engineer mysql-databas för att skapa django-appen

  3. PHP/MySQL:Lagra och hämta UUIDS

  4. Hur skapar jag en Oracle-tabell med kapslade tabeller med objekttyper?