Om deze specifieke fout te controleren, moet u de foutcode
. Het is 1062
voor duplicaatsleutel. Gebruik dan het resultaat van errno()
te vergelijken met:
mysqli_query('INSERT INTO ...');
if (mysqli_errno() == 1062) {
print 'no way!';
}
Een opmerking over programmeerstijl
Je moet altijd proberen het gebruik van magische getallen
te vermijden (Ik weet het, ik was degene die het in dit antwoord introduceerde). In plaats daarvan kunt u de bekende foutcode toewijzen (1062
) naar een constante (bijv. MYSQLI_CODE_DUPLICATE_KEY
). Dit maakt uw code gemakkelijker te onderhouden als de voorwaarde in de if
verklaring is nog steeds leesbaar in een paar maanden wanneer de betekenis van 1062
is uit het geheugen verdwenen :)