Mysql
 sql >> Database >  >> RDS >> Mysql

Come gestire l'errore per le voci duplicate?

Per verificare la presenza di questo errore specifico, è necessario trovare il codice di errore . È 1062 per chiave duplicata. Quindi utilizza il risultato di errno() da confrontare con:

mysqli_query('INSERT INTO ...');
if (mysqli_errno() == 1062) {
    print 'no way!';
}

Una nota sullo stile di programmazione
Dovresti sempre cercare di evitare l'uso di numeri magici (Lo so, sono stato io a introdurlo in questa risposta). Invece, puoi assegnare il codice di errore noto (1062 ) in una costante (ad es. MYSQLI_CODE_DUPLICATE_KEY ). Questo renderà il tuo codice più facile da mantenere come condizione nel if dichiarazione è ancora leggibile tra qualche mese quando il significato di 1062 è svanito dalla memoria :)