webForumDet fria alternativet

Fält får inte vara NULL men lyckas ändå?

Databaser & SQL

3 svar · 215 visningar · startad av Mungo

Medlem sedan jan. 2000372 inlägg
Frågan#1

Tjo.
jag har lite problem på en av mina communities att folk ständigt lyckas registrera sig med NULL som användarnamn. Vet inte riktigt hur de kommer förbi mina javascript + PHP-tester för tomma fält men dessutom lyckas de ju lagras i databasen, trots att fältet "username" är en varchar med not null satt till true. Då borde väl rimligen inte INSERTs med NULL-värden för just det fältet godkännas. Eller hur funkar det där egentligen?

/Måns

Medlem sedan dec. 20003 563 inlägg
#2

Du är säker på att det inte är av typen char med ett mellanslag inlagt?

"" <> NULL

Medlem sedan jan. 2000372 inlägg
#3

Ja, tämligen. Det skulle ju iofs kunna vara ett annat kontrolltecken av nåt slag. Nu brukar jag radera raderna snabbt (vill inte ha namnlösa användare inne) men nästa gång får jag väl göra en ASCII-analys av namnet och se vad det är som kommer in. Det skumma är att jag redan har ett regexp som VERKAR funka och som bara ska tillåta a-z0-9...

Medlem sedan dec. 20003 563 inlägg
#4

Kör en simpel koll innan du lägger till kontot annars.

If isnull(username) then
   ' Här är något fel
else
   ' rock on baby
end if

r:
Jag skulle tro att det är ett ""-värde du har haft i databasen då mySQL skulle sagt ifrån ifall man skulle lägga in ett riktigt NULL-värde.

Att ha en sån här test duger ju annars till en del.

function checklength(Susername)
  Susername = trim(Susername) & ""
  if len(Susername) > 0 then
    checklength = true
  else
    checklength = false
  end if
end function
254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)