Avatar billede lone_a_p Praktikant
30. januar 2009 - 19:35 Der er 10 kommentarer og
1 løsning

Problemer med 0

Jeg har store problemer med at skrive f.eks. "0123" ind i en tabel med typen varchar.

Den gemmer blot "123"??? Hvorfor sletter den nullet. Den går vel ud fra, at det er et tal. Men jeg kan ikke engang skrive (string) "0123" ... det giver samme resultat.

Hvad gør jeg for at kunne starte med 0. Underligt nok kan jeg godt indsætte "0123" direkte via phpmyadmin.
Avatar billede erikjacobsen Ekspert
30. januar 2009 - 19:38 #1
En varchar kan sagtens gemme '0123' - måske gør du noget, når du udskriver værdien.
Avatar billede coderdk Praktikant
30. januar 2009 - 19:50 #2
Lad os se noget kode ;P
Avatar billede lone_a_p Praktikant
30. januar 2009 - 20:04 #3
jeg tror faktisk, at jeg har løst problemet alligevel.

da jeg skrev herind, at det virker i phpmyadmin kom jeg til at tænke, at jeg jo skulle sammenligne med de koder.

Det ser ud til at virke, når jeg skriver:
`column` = "0123"

før havde jeg blot column = "0123"

Jeg er aldrig stødt på dette problem tidligere, men der må jo være en forskel, selvom jeg ikke rigtig synes der er nogen. Men sådan er det med koder ... de skal have de helt rigtige kommandoer :-)

Jeg har ikke tid til at gennemteste det i aften, men jeg prøver i morgen.

I må gerne lægge et par svar for deltagelsen :)

Har faktisk kigget på denne fejl nogle gange efterhånden, og når man så endelig spørger, så finder man ud af det efter 5 min :-D Men dejligt!
Avatar billede lone_a_p Praktikant
30. januar 2009 - 20:06 #4
og det må i øvrigt vist ikke være "column" = "0123" :-)
Avatar billede erikjacobsen Ekspert
30. januar 2009 - 21:26 #5
column er et reserveret ord: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
Derfor kan du i mysql skrive `column` - eller finde på et andet navn: kolonne ?

Jeg synes så også det er pænere at bruge '-ere:  `column` = '0123'

Iøvrigt bør du programmere, så du får en fejlbesked fra mysql, når denne slags fejl opstår.

Og ingen point til mig, tak.
Avatar billede arne_v Ekspert
31. januar 2009 - 01:15 #6
Man bliver ked af "0123" den dag database administrator slå ANSI mode til.
Avatar billede lone_a_p Praktikant
31. januar 2009 - 17:34 #7
arne_v: Vil du uddybe dit indlæg? Er der noget jeg skal være opmærksom på fremover? Mine tabeller er lige nu MYISAM.

erikjacobsen: undskyld misforståelsen - ordet column var blot for at lette forståelsen herinde, kolonnen hedder ikke column i databasen :)
Avatar billede arne_v Ekspert
31. januar 2009 - 17:48 #8
I ANSI mode er "" synonym for ``
Avatar billede erikjacobsen Ekspert
31. januar 2009 - 18:43 #9
Og effekten vil være, at det godt kan være at

  felt = "0123"

virker i dag, men det er ikke standard, og vil ikke virke i alle andre mysql-er, og andre sql-er. Men

  felt = '0123'

vil altid virke.
Avatar billede lone_a_p Praktikant
31. januar 2009 - 18:56 #10
oh - ja, så kan jeg godt se, at mit website ville ryge sig en tur indtil jeg får skiftet om :O
Avatar billede lone_a_p Praktikant
25. juli 2009 - 19:07 #11
Er i gang med at lukke alle åbne spørgsmål.
Tak for alles deltagelse.
Mvh Lone
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