Avatar billede donslund Nybegynder
10. marts 2003 - 15:32 Der er 12 kommentarer og
2 løsninger

"huller" i SQL-sætning.

Når felterne i min db er sat til at de godt må være null, hvorfor duer denne sql-sætning så ikke?

$insert_k="insert into koeretoej
                (type,
                fabrikat,
                model,
                aargang,
                hastighed,
                benzin,
                anskaf_dato,
                anskaf_pris,
                koeredag,
                historie)
                values ('$type',
                '$fabrikat',
                '$model',
                $aargang,
                $hastighed,
                $benzin,
                $anskaf_dato,
                $anskaf_pris,
                $koeredag,
                '$historie'
                )";

Giver:
insert into koeretoej (type, fabrikat, model, aargang, hastighed, benzin, anskaf_dato, anskaf_pris, koeredag, historie) values ('bil', 'volvo', '123', 1986, , , , , , '' )
Avatar billede slash Nybegynder
10. marts 2003 - 15:37 #1
velsagtens fordi fx. historie opfattes som en tom streng.... prøv at lave en test på om fx. historie = "" - hvis den er det så lav din sql om til eksplicit at indsætte null
Avatar billede donslund Nybegynder
10. marts 2003 - 15:45 #2
Dette i toppen
if ($historie == ""){
    $historie = NULL;
}

skulle det ikke kunne gøre det?
Avatar billede slash Nybegynder
10. marts 2003 - 15:49 #3
jow - det skulle det i princippet.

jeg plejer bare at lave det når jeg bygger selve sql strengen - fx.:
strSQL = "insert into test (tekst) values ("
if strTextFromForm <> "" then
  strSQL = strSQL & " '"&strTextFromForm &"') "
else
  strSQL = strSQL & " NULL) "
end if
Avatar billede arnvig Nybegynder
10. marts 2003 - 15:54 #4
Hvad mener du med at den ikke duer ?
Avatar billede slash Nybegynder
10. marts 2003 - 15:55 #5
jeg har aldrig sagt at den ikke dur! Man kan gøre det på begge måder - jeg viser blot hvorn jeg gør....
Avatar billede arnvig Nybegynder
10. marts 2003 - 15:55 #6
Jeg mener også at type er et reserveret ord.
find et andet kolonne navn til type,
Avatar billede arnvig Nybegynder
10. marts 2003 - 15:56 #7
Slash, det var ikke til dig, men til donslund.

Donslund: hvad mener du med at den ikke duer ?
Avatar billede arnvig Nybegynder
10. marts 2003 - 15:57 #8
Type kunne hedde kategori
Avatar billede donslund Nybegynder
10. marts 2003 - 16:01 #9
Den sætter ikke noget ind i databasen.
Avatar billede slash Nybegynder
10. marts 2003 - 16:07 #10
suspekt! hva så hvis du udskriver sql'en og paster sætningen over i en query analyzer?
Avatar billede donslund Nybegynder
10. marts 2003 - 16:13 #11
Dette er sql-outputtet:

insert into koeretoej ( kategori, fabrikat, model, aargang, hastighed, benzin, anskaf_dato, anskaf_pris, koeredag, historie) values ( 'bil', 'vfea', 'bgfdbgfs', 1986, , , , , , '')
Avatar billede arnvig Nybegynder
21. marts 2003 - 15:06 #12
Donslund: fandt du ud af hvad problemet var ?
Avatar billede donslund Nybegynder
21. marts 2003 - 17:51 #13
Ja, jeg fandt den løsning at jeg validerede formularen og de steder hvor variablen var "" satte jeg den lig 0. I mit output på den side hvor jeg trækker tingene ud af databasen, checker jeg så om den er lig 0. Er den det skal den ikke skrive noget.
Avatar billede arnvig Nybegynder
24. marts 2003 - 10:05 #14
så du fandt ikke årsagen til problemet, men løste det med en work-around ?
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