WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem med UPDATE-kommandot i SQL (https://www.wn.se/forum/showthread.php?t=24824)

vojma 2007-11-05 07:14

Hej - har problem med att uppdatera en tabell i en databas.

Här är ASP-koden:


namn = Request.form("tb_name")
ar = Request.form("tb_year")
manad = Request.form("tb_month")
dag = Request.form("tb_day")
bild = Request.form("tb_pict")
text = Request.form("tb_text")
datum = manad & "-" & dag

strSQL3 = "UPDATE tbl_main_frame_birthday SET "
strSQL3 = strSQL3 & "namn='" & namn & "', "
strSQL3 = strSQL3 & "ar='" & ar & "', "
strSQL3 = strSQL3 & "datum='" & datum & "', "
strSQL3 = strSQL3 & "bild='" & bild & "' "
---> 'strSQL3 = strSQL3 & "text='" & text & "' "
strSQL3 = strSQL3 & "WHERE id = " & btn_1
response.write("
strsql=" & strsql3 & "
")
Set rstRS3 = objConn.Execute(strSQL3)

Det är raden som är markerad med en pil som inte fungerar. Så fort jag tar bort fnutten i början av raden så får jag felmeddelandet:

"Syntax error in UPDATE-statement"

Databas: Access2000, alla fält är av text-typ utom id som är räknare.
Webserver: IIS, Win2000Server


Vad kan detta bero på? :huh: :huh: :huh:

/V

Jan Eriksson 2007-11-05 07:38

Du saknar ett komma på raden innan:

strSQL3 = strSQL3 & "bild='" & bild & "', "
---> 'strSQL3 = strSQL3 & "text='" & text & "' "

Tänk på att din kod är öppen för SQL-injektion.

goose 2007-11-05 09:30

text kan vara en datatyp i databasen (osäker på vilken du använder) och då får du syntaxfel på updatekommandot. Prova att köra
strSQL3 = strSQL3 & "[text] ='" & text & "' " istället.

Frej 2007-11-05 10:46

Vill du inte inkludera år i datumet?

Edit: Såg att du hade en separat kolumn för det...

vojma 2007-11-10 11:22

Citat:

Originally posted by Jan Eriksson@Nov 5 2007, 08:38
Du saknar ett komma på raden innan:
strSQL3 = strSQL3 bild= bild ,
--- strSQL3 = strSQL3 text= text
Tänk på att din kod är öppen för SQL-injektion.

Kommatecknet är borttaget för att det ska fungera till dess att jag får TEXT:en att uppdateras.

Vad menas med öppen för SQL-injektion?

/V

vojma 2007-11-10 11:24

Citat:

Originally posted by goose@Nov 5 2007, 10:30
text kan vara en datatyp i databasen (osäker på vilken du använder) och då får du syntaxfel på updatekommandot. Prova att köra
strSQL3 = strSQL3 [text] = text istället.


Använder Access2000.

Har provat att döpa om text till text2 utan resultat.

/V

Jan Eriksson 2007-11-10 11:37

Citat:

Originally posted by vojma@Nov 10 2007, 12:22

Vad menas med öppen för SQL-injektion?

Här kan du läsa mer.
http://www.swesecure.com/quick/sql-injection.aspx

Hur ser texten ut som du tänker spara? Innehåller den tex ett ' så får du syntax error. (Hör ihop med SQL-injektion)

Robert 2007-11-10 14:44

Visa för oss vad strSQL3 innehåller så slipper vi spekulera så mycket.

vojma 2007-11-15 13:11

Åhhh - herregud... Och allt jag vill göra är att mina vänners födelsedagar ska komma upp automatiskt en vecka innan de fyller år...

Tror att jag bortser från riskerna med SQL-injektion...

Tack dock för all input.

/V


Alla tider är GMT +2. Klockan är nu 08:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson