webForumDet fria alternativet

Lägga till textsträngar med apostrofer med SQL

ASP

10 svar · 195 visningar · startad av nill

Medlem sedan okt. 2001387 inlägg
Frågan#1

Om jag använder denna SQLgrej:

INSERT INTO filmer (titel, handling, betyg, antalrecensioner) VALUES ('" & Request.Form("titel") & "', '" & Request.Form("handling") & "', " & cInt(Request.Form("betyg")) & ", 1"

Så blir det helt förståligt ett felmeddelande om Request.Form innehåller en apostrof(').
Hur kan man fixa det ?

Medlem sedan mars 2001309 inlägg
#2

För att göra saken enkel så kan du ju lägga dina Request.Form värden i variabler och använda variablerna i SQLsattsen !

------------------
Är man medlem på WF så behöver man inga vänner !

Medlem sedan juni 200032 967 inlägg
#3

Hej.

Du använder Replace() för att byta ut enkla apostrofer ' till två likadana, ''. Så escape:ar du det tecknet i språket SQL.

INSERT INTO filmer (titel, handling, betyg, antalrecensioner) VALUES ('" & Replace(Request.Form("titel"),"'", "''") & "', '" & Replace(Request.Form("handling"), "'", "''") & "', " & cInt(Request.Form("betyg")) & ", 1"

Mvh,

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

Medlem sedan feb. 20012 412 inlägg
#4

Eller kan du köra en funktion på variabeln innan du stoppar in den i sql-frågan:

Function FixaTecken(sfix)
sfix = Replace(Trim(sfix), "'", "''")
sfix = Replace(sfix, "|", "")
FixaTecken = sfix
End Function

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan okt. 2001387 inlägg
#5

Snabbt svar man fick denna gång, tack :)

Medlem sedan okt. 2001387 inlägg
#6

Hur gör jag i Javascript ? Det fungerade inte med Apostrif-fixarfunktionen där :(

Anropar JavaScriptsfunktionen såhär:
<A HREF=""javascript:Pop('media.asp?pyssel=visa&ID=" & RecSet("ID") & "&titel=" & ApostrofFix(RecSet("titel")) & "')"">

Men att byta ut ' mot '' gör ingen verkan där :(

Medlem sedan juni 200032 967 inlägg
#7

Skriver du ut länken med ASP?

I så fall, testa att använda Server.HTMLEncode() istället för ApostrofFix() i anropet.

Du måste ändå göra ersättningen innan du ställer SQL-frågor senare.

Mvh,

Medlem sedan okt. 2001387 inlägg
#8

Ja java-anropet ligger en variabel som loopas ut från en databas.

serverhtmlencode fungerade inte.. samma resultat fast bara en apostrof.

Vad måste göra ersättning SQL sen ?

Medlem sedan juni 200032 967 inlägg
#9

Arrghh.

Förlåt mig.

Server.URLEncode() skall du använda, det var jag som skrev fel.

Server.URLEncode() gör strängar säkra för att kunna skickas som querystrings.

Det är SQL-frågan som ballar ur också när du har apostrofer, men det kanske inte har med detta att göra?

Mvh,

Medlem sedan okt. 2001387 inlägg
#10

ne.. det fungerade inte heller.. får helt enkelt köra med Replace("blabla", "'", "") i javascripten :/

Medlem sedan juni 200032 967 inlägg
#11

Äsch. ;)

I javascript escape:ar du med backslash.

Du kan alltså pröva att göra Replace(variablen, "'", "\'").

Mvh,

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)