sql >> Database >  >> RDS >> Mysql

Hoe om te gaan met fouten voor dubbele vermeldingen?

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



  1. De basisprincipes van het afstemmen van MySQL op dedicated servers

  2. Hoe gebruik je een Oracle Ref Cursor van C# ODP.NET als een ReturnValue-parameter, zonder een opgeslagen functie of procedure te gebruiken?

  3. Externe sleutel instellen met ander datatype

  4. stel een leeg wachtwoord in voor PostgreSQL-gebruiker