webForumDet fria alternativet

Problem med ' och "

ASPur ASP

4 svar · 195 visningar · startad av i-or

i-orMedlem sedan nov. 2001294 inlägg
#1

Jag undrar om man behöver ersätta " i alla fält. Enda gången jag har fått problem är om ett fält med " ska ingå i ett WHERE-uttryck.

Kan jag då bara ersätta " i de fält, som ingår i WHERE-uttryck?
Blir det problem på något annat sätt? I så fall, hur?

Finns det andra tecken man ska vara försiktig med?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

" skall du inte göra något åt. Det är bara ' som behöver ersättas

t = "'" & replace(request.form("template"),"'","''") & "'"
q = "insert into x values(t)"

Använd alltid ' för att avgränsa strängar i SQL.

Om man använder Access databas så skall man också ta hand om |

t = "'" & replace(request.form("template"),"'","''") & "'"
t = replace(t,"|","' & chr(124) & '")
i-orMedlem sedan nov. 2001294 inlägg
#3

Behöver man alltså inte ersätta ' annat än i de strängar som ingår i WHERE-uttryck?

När använder man |?
Ok, man ska vara förberedd på allt, men | används väl bara av de som vill förstöra?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det har ingen betydelse var du använder värdet. Du måste göra det med alla strängar som du stoppar in i en sql-sats. I mitt exempel så är det ju ett insert-statement.

Att byta | är en säkerhetsåtgärd. Jag har i ett tidigare inlägg länkat till en artikel som beskriver varför. (du kan ju söka om du är intresserad.)

i-orMedlem sedan nov. 2001294 inlägg
#5

Jag använder nog bara strängar i WHERE-uttryck (uppdateringar, raderingar osv gör jag efter jag öppnat recordsetet). Så om det bara är i SQL-satser så är det nog lugnt för min del.

Tack för infon och jag ska söka efter |

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