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 :)