Avatar billede cmp77 Nybegynder
02. november 2005 - 22:31 Der er 11 kommentarer og
1 løsning

Error #1264 - Hvorfor?

Hej hej

Efter en komplet re-installation af windows, besluttede jeg at opgradere MySQL, PHP og Apache ved samme lejlighed. Nu får jeg desværre en fejl hver gang jeg prøver at indsætte noget i en database. Jeg kan sagtens få lov til at oprette nye databaser, men som sagt kan jeg ikke indsætte noget i dem.

Fejlen jeg får er "Error #1264 - "Out of range value adjusted for column 'id' at row 1".

"id" er sat til INT(5), Prim.Key og auto increment, så jeg kan ikke helt gøre mig klog på hvad der er galt. HJÆLÅ!!! ;-)

/Claus
Avatar billede pidgeot Nybegynder
02. november 2005 - 22:35 #1
Du må ikke specificere auto_increment kolonnen med MySQL 5 - eller også må du, men du må ikke specificere '', selvom værdien skal ignoreres. Jeg er ikke helt sikker på hvilken af delene der er tilfældet, men det nemmeste er at udelade auto_increment kolonnen.
Avatar billede fn1977 Nybegynder
03. november 2005 - 17:58 #2
hvordan ser din query til indsæt ud ?
Avatar billede cmp77 Nybegynder
03. november 2005 - 18:39 #3
pidgeot> Du har ret, det virker hvis jeg indsætter en værdi i "id", men vil det sige at auto increment funktionen er helt værdiløs i version 5???

fn1977> Jeg prøved med phpMyAdmin så query'en burde være ok... INSERT INTO `categories` (`id` , `name`) VALUES ('' , 'Ordbøger')
Avatar billede pidgeot Nybegynder
03. november 2005 - 20:58 #4
Nej, den er slet ikke værdiløs - du skal blot undlade at specificere den kolonne når du tildeler en værdi. (Dette bør du nu gøre alligevel, da der ikke er nogen grund til at have den der - det du angiver skal jo alligevel ikke bruges :))

Alternativt kan du vælge at deaktivere de Strict modes der er aktiverede som standard. Jeg kan ikke lige huske hvad kommandoen er, men jeg skulle mene den står et sted i manualen.
Avatar billede fn1977 Nybegynder
03. november 2005 - 21:00 #5
Jeg spørger fordi at normalt ville jeg indsætte med dit eks men hvis du læser i manualen på mysql 5 ser det ud til at være forkert i dag. man skal indsætte det sådan her 
INSERT INTO `categories` (`id` , `name`) VALUES('Ordbøger')

se evt http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
Avatar billede pidgeot Nybegynder
03. november 2005 - 21:07 #6
Det skal nu være

INSERT INTO `categories` (`name`) VALUES('Ordbøger')

regner med du bare lige missede den del ;)
Avatar billede fn1977 Nybegynder
03. november 2005 - 21:10 #7
Ja det var en misser :)

men det jeg ville frem til er at normalt ville jeg hælde en tom værdi og forvente en autoincrement. måske er det der det går galt
Avatar billede pidgeot Nybegynder
03. november 2005 - 21:15 #8
Det er præcist det der skaber problemet. Mit bud er at den kontrollerer den værdi du har angivet FØR den ser at værdien blot skal smides væk grundet auto_increment. Fordi Strict Mode er aktiveret som standard, giver dette en fejl i stedet for den warning man normalt ville få (hvis jeg husker rigtigt).

Men igen, så er der jo ingen grund til at skrive det felt med i sin query, når nu den fint kan finde ud af at tælle op uden ;)
Avatar billede cmp77 Nybegynder
04. november 2005 - 19:56 #9
I har principielt begge svaret på mit spørgsmål (takker mange gange), men pidgeot var først ude, så poster du ikke lige et svar? Håber det er ok, fn1977 ;-)
Avatar billede pidgeot Nybegynder
04. november 2005 - 20:02 #10
Værsgo :)
Avatar billede cmp77 Nybegynder
05. november 2005 - 09:39 #11
Cool!!
Avatar billede cmp77 Nybegynder
05. november 2005 - 09:39 #12
Hov,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester