Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie gehe ich mit Fehlern bei doppelten Einträgen um?

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