Um nach diesem speziellen Fehler zu suchen, müssen Sie den Fehlercode
. Es ist 1062
für Zweitschlüssel. Verwenden Sie dann das Ergebnis von errno()
zu vergleichen mit:
mysqli_query('INSERT INTO ...');
if (mysqli_errno() == 1062) {
print 'no way!';
}
Eine Anmerkung zum Programmierstil
Sie sollten immer versuchen, die Verwendung von magischen Zahlen
zu vermeiden (Ich weiß, ich war derjenige, der es in dieser Antwort eingeführt hat). Stattdessen könnten Sie den bekannten Fehlercode (1062
) in eine Konstante (z. B. MYSQLI_CODE_DUPLICATE_KEY
). ). Dadurch wird Ihr Code einfacher zu pflegen als die Bedingung in if
Aussage ist noch in ein paar Monaten lesbar, wenn die Bedeutung von 1062
ist aus dem Gedächtnis verschwunden :)