sql >> Databasteknik >  >> RDS >> Mysql

Hur hanterar man fel för dubbla poster?

För att kontrollera detta specifika fel måste du hitta felkod . Det är 1062 för dubblettnyckel. Använd sedan resultatet från errno() att jämföra med:

mysqli_query('INSERT INTO ...');
if (mysqli_errno() == 1062) {
    print 'no way!';
}

En notering om programmeringsstil
Du bör alltid försöka undvika användningen av magiska siffror (Jag vet, det var jag som introducerade det i det här svaret). Istället kan du tilldela den kända felkoden (1062 ) till en konstant (t.ex. MYSQLI_CODE_DUPLICATE_KEY ). Detta kommer att göra din kod lättare att underhålla som villkoret i if uttalandet är fortfarande läsbart om några månader när betydelsen av 1062 har bleknat ur minnet :)



  1. Hur man väljer den första raden i varje GRUPP FÖR Grupp

  2. SQLite FULL OUTER JOIN-emulering

  3. R12.2 Rapport om beredskap för onlinepatchning

  4. Hur man lägger till xml-kodning <?xml version=1.0 encoding=UTF-8?> till xml-utdata i SQL Server