dahlgrenMedlem sedan aug. 20011 442 inlägg
Uppdatera = "UPDATE login SET adress = '" & Request.Form("adress") & "', telhem = '"& Request.Form("telhem") & _
"', mobil = '" & Request.Form("mobil") & "', email = '" & Request.Form("email") & _
"', icq = " & Request.Form("icq") & ", msn = '" & Request.Form("msn") & _
"' WHERE ID = " & Request.Form("dold")
Koden ovan har fungerat tidigare men just nu ger den fel om jag försöker uppdatera med tomma värden trots att det är tillåtet med null i databasen.
Om jag skriver ut sql-satsen så ger det:
UPDATE login SET adress = '', telhem = '', mobil = '', email = '', icq = , msn = '' WHERE ID = 17 som i mina ögon ser korekt ut men om jag försöker köra den får jag följande medelande. Någon som vet vad som är fel?
[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt-log]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' msn = '' WHERE ID = 17' at line 1
PeeerMedlem sedan mars 20025 362 inlägg
icq-fältet felar lite skulle jag tro. Kör en replace på request.form("icq") så att det blir null om värdet saknas från formuläret.
tydalMedlem sedan juni 20033 788 inlägg
Du har inte apostrofer runt icq.
dahlgrenMedlem sedan aug. 20011 442 inlägg
Borde vara utan appostrofer då det är av typen int.
PeeerMedlem sedan mars 20025 362 inlägg
Då måste du köra med null som sagt;
icq = null
LeonLMedlem sedan dec. 20023 175 inlägg
Det får inte vara helt tomt som:
Kod som inte funkar skrev:
icq = , msn = ''
Du måste köra en If-sats, som Peeer säger, och kolla om fältet är tomt. Om fältet är tomt ska det stå NULL som parameter.
Kod som funkar skrev:
icq = NULL, msn = ''
r\ Peeer han före. Borde kanske inte ha lagt mig i. ;)
dahlgrenMedlem sedan aug. 20011 442 inlägg
Precis som tydal skrev skanades apostrofer. Jag också fel det var ingen int.
tydalMedlem sedan juni 20033 788 inlägg
I Mysql kan man ha apostrofer runt int. Det är bra att ha det utifall man skulle glömma att kontrollera så variabeln enbart innehåller siffror.