For at tjekke for denne specifikke fejl skal du finde fejlkode
. Det er 1062
for dubletnøgle. Brug derefter resultatet fra errno()
at sammenligne med:
mysqli_query('INSERT INTO ...');
if (mysqli_errno() == 1062) {
print 'no way!';
}
En note om programmeringsstil
Du bør altid forsøge at undgå brugen af magiske tal
(Jeg ved det, jeg var den, der introducerede det i dette svar). I stedet kan du tildele den kendte fejlkode (1062
) til en konstant (f.eks. MYSQLI_CODE_DUPLICATE_KEY
). Dette vil gøre din kode nemmere at vedligeholde som betingelsen i if
erklæringen kan stadig læses om et par måneder, når betydningen af 1062
er falmet ud af hukommelsen :)