webForumDet fria alternativet

Tillåta NULL/tomma värden

3 svar · 260 visningar · startad av lillen_009

lillen_009Medlem sedan nov. 2002137 inlägg
#1

Har ett litet problem

när jag sätter in data i databasen fungerar det som jag ska - under förutsättning att jag fyller i alla fält. Nu är det några som ska vara frivilliga... Har inte "not Null" ikryssad i MySQL-FRONT så databasen ska tillåta NULL-värden. Det är ett int-fält, tre text-fält och ett date-fält som ska vara frivilliga. Hur löser man det så att man tillåter tomma eller NULL? :q

@ndersMedlem sedan juni 200032 969 inlägg
#2

Det är rätt inställningar du gjort, men du måste alltid se till att din syntax i SQL-frågan är korrekt. Bara för att fälten kan lagra NULL innebär det inte att du bara kan låta det vara tomt i SQL-frågan.

INSERT INTO tabellen (fält1, fält2, fält3) VALUES (1, NULL, 3)

Eller:

INSERT INTO tabellen (fält1, fält3) VALUES (1, 3)

Men inte:

INSERT INTO tabellen (fält1, fält2, fält3) VALUES (1, , 3)
lillen_009Medlem sedan nov. 2002137 inlägg
#3

Hur blir det när informationen kommer från en form? Är det ifsatsen som gäller då? man kan ju inte skriva in NULL från början

if isnull(request.form(fält")) then
varde0 = NULL
else
varde 0 = request.form("fält")
end if

och sedan ´lägga in "& varde0 & " på rätt plats i SQL:en. Har jag förstått det rätt?

@ndersMedlem sedan juni 200032 969 inlägg
#4

I stort sett. Du måste dock se till att du i asp ger variablerna strängvärdet null:

if request.form("fält") = "" then
varde0 = "NULL"
else
varde0 = request.form("fält")
end if

Dessutom får NULL aldrig ha strängavgränsare runt sig, så även vid text- och datumfält ska det vara NULL, inte 'NULL' eller #NULL#.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)