foutmelding Duplicate entry '127' for key 1 bij toevoegn bericht aan gastenboek
Frank
31/07/2007 13:40:00Goedemiddag allemaal,
Wanneer ik een brericht probeer toe te voegen aan mijn gastenboek, krijg ik de bovenstaande foutmelding. Voorheen had ik dit niet maar ik heb een extra invoerveld toegevoegd ivm met spam en nu is dit dus wel het geval. Hij probeert dus data weg te schrijven op hetzelfde id-nummer 127.
Wie heeft er een idee hoe ik dit an voorkomen?
Met vriendelijke groet,
Frank
Wanneer ik een brericht probeer toe te voegen aan mijn gastenboek, krijg ik de bovenstaande foutmelding. Voorheen had ik dit niet maar ik heb een extra invoerveld toegevoegd ivm met spam en nu is dit dus wel het geval. Hij probeert dus data weg te schrijven op hetzelfde id-nummer 127.
Wie heeft er een idee hoe ik dit an voorkomen?
Met vriendelijke groet,
Frank
PHP hulp
17/11/2024 04:47:18Erik Rijk
31/07/2007 13:45:00- wes -
31/07/2007 13:46:00Frank -
31/07/2007 13:49:00Bij nummer 127 moet ik altijd direct denken aan een verkeerd datatype... Het zou mij niet verbazen dat jij een TINYINT gebruikt om het id op te slaan. Die heeft echter slechts 127 mogelijkheden. Probeer je dan nog een record op te slaan, dan gaat MySQL wat geks doen:
- Je probeert met auto_increment nummer 128 op te slaan
- 128 past niet in een TINYINT, MySQL past dan voor 'het gemak' het nummer aan, dat wordt 127 (dat je data naar de klote is, dat geeft niks...)
- Omdat je een primairy key op het id hebt staan en een unique, loopt de boel nu helemaal in het honderd. 127 bestaat al en kun je dus niet nogmaals opslaan: Duplicate entry!
Oplossing: Gebruik voor een id altijd een INT, dan kun je zonder enig probleem een paar miljard records opslaan.
Verder zou je eens kunnen kijken naar de juiste 'mode' van de database, wanneer je die op strict instelt, gaat er veel minder fout.
Edit: SQL-mode voor de MySQL-boys & girls
- Je probeert met auto_increment nummer 128 op te slaan
- 128 past niet in een TINYINT, MySQL past dan voor 'het gemak' het nummer aan, dat wordt 127 (dat je data naar de klote is, dat geeft niks...)
- Omdat je een primairy key op het id hebt staan en een unique, loopt de boel nu helemaal in het honderd. 127 bestaat al en kun je dus niet nogmaals opslaan: Duplicate entry!
Oplossing: Gebruik voor een id altijd een INT, dan kun je zonder enig probleem een paar miljard records opslaan.
Verder zou je eens kunnen kijken naar de juiste 'mode' van de database, wanneer je die op strict instelt, gaat er veel minder fout.
Edit: SQL-mode voor de MySQL-boys & girls
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Frank
01/08/2007 18:41:00Beste posters, bedankt voor jullie reacties. Ik had inderdaad het datatype voor id op TINYINT staan. Het loopt nu allemall weer als een tierelier.
Groet,
Frank
Groet,
Frank