Avatar billede ravnborg Nybegynder
07. februar 2009 - 21:40 Der er 10 kommentarer og
1 løsning

Problemer med null værdi ved int

Jeg er ved at opsætte en MySQL database i phpMyAdmin.

På min hjemmeside har jeg en form, der tilføjer i MySQL database.
Hvis et felterne i formen er tomt, og der trykkes på tilføj, får jeg fejlen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt]Out of range value adjusted for column 'nummer' at row 1

Det sker kun når der skal tilføjes i et int felt i databasen.

Den er sat op som følgende:
Feltnavn Datatype Kollation Attributter Nulværdi Standardværdi
nummer  int(5)                        Ja      NULL     

Hvis jeg sætter Datatype til varchar virker det fint. Problemet er der kun når Datatype er sat til int
Avatar billede erikjacobsen Ekspert
07. februar 2009 - 21:53 #1
Du skal vel angive, hvad der skal ske når feltet er tomt - altså hvilken værdi, der skal indsættes. Der findes ikke en "tom" værdi for en int, kun NULL.
Avatar billede ravnborg Nybegynder
07. februar 2009 - 22:03 #2
Nu har jeg prøver at ændre standardværdien til først 0 og der næst til 22.
Jeg får stadig fejl.
Avatar billede erikjacobsen Ekspert
07. februar 2009 - 22:06 #3
Standardværdien bruges, hvis du ikke angiver en værdi i feltet. Men hvad skriver du, og hvad er fejlen? Det er ikke en gættekonkurrence...
Avatar billede ravnborg Nybegynder
07. februar 2009 - 22:31 #4
Fejlen kommer kun, når jeg ikke skriver noget i feltet på hjemmesiden.

fejlmeddelsen er så:
Out of range value adjusted for column 'nummer' at row 1

SQL:
insert into testTabel (nummer, streng) values ('', '')
Avatar billede erikjacobsen Ekspert
07. februar 2009 - 22:40 #5
Jamen så la' vær' med at skrive ingenting.  Er inputstrengen tom så lav værdien om til 0 (hvis det giver mening) eller NULL (hvis det giver mening), og sæt det ind.

Hvad skal den stakkels mysql gøre, når den ikke for en værdi den kan bruge - ud over at brokke sig ;)

PS: Tidligere versioner af MySql åd faktisk den konstruktion, og satte noget ind.
Avatar billede ravnborg Nybegynder
08. februar 2009 - 01:58 #6
Kan det passe, at når jeg indsætter NULL, kommer der til at stå 0 i databasen?
Avatar billede erikjacobsen Ekspert
08. februar 2009 - 09:26 #7
Nej, der kommer til at stå NULL. Men hvis du trækker værdien ud i PHP, og regner på den, så kan det være den opfører sig som 0.
Avatar billede ravnborg Nybegynder
08. februar 2009 - 13:46 #8
Så fik jeg rettet det til, så det virker.

Opret bare et svar, og mange tak for hjælpen.

mvh
Ravnborg
Avatar billede ravnborg Nybegynder
08. februar 2009 - 13:46 #9
Så fik jeg rettet det til, så det virker.

Opret bare et svar, og mange tak for hjælpen.

mvh
Ravnborg
Avatar billede erikjacobsen Ekspert
08. februar 2009 - 19:05 #10
Jeg samler slet ikke på point, tak. Svar selv, og accepter dit eget svar.
Avatar billede ravnborg Nybegynder
08. februar 2009 - 19:23 #11
Ok
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