---
title: "Kan inte skriva ett -> ' <- tecken till min databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/78770-kan-inte-skriva-ett-tecken-till-min-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "hEWRa"
published: "2003-06-03T11:29:58.000Z"
updated: "2003-06-03T12:52:03.000Z"
replies: 13
views: 374
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/78770-kan-inte-skriva-ett-tecken-till-min-databas"
---

# Kan inte skriva ett -> ' <- tecken till min databas

## #1 — hEWRa, 2003-06-03T11:29Z

När jag försöker uppdatera eller skriva till min databas och använder mig utav ett ' sådant tecken får jag följande error msg:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel (operator saknas) i frågeuttrycket ''don't test', av=' Kaspar Prinz ', epost=' <kasparular@hotmail.com> ' WHERE ID=1'.
/prinzdesign/dbac.asp, line 80

Så här ser koden ut:

```
SQL = "UPDATE nyheter SET rubrik='"&Request.Form("rubrik")&"', meddelande='"&Request.Form("meddelande")&"', av='"&Request.Form("av")&"', epost='"&Request.Form("epost")&"' WHERE ID="&Request.Form("pID")&""

Conn.Execute(SQL)
```

Vad kan det vara för fel?

MVH Kaspar

Permalänk: https://www.webforum.nu/p/78770

## #2 — voigtann1, 2003-06-03T11:33Z

ASP är inte så särket.. du måste använda en replace:

```
function secure(mess)
mess = Replace(mess, "'", "''")
end function
```

```
SQL = "UPDATE nyheter SET rubrik='"&secure(Request.Form("rubrik"))&"', meddelande='"&secureRequest.Form("meddelande"))&"', av='"&secure(Request.Form("av"))&"', epost='"&secure(Request.Form("epost"))&"' WHERE ID="&Request.Form("pID")&""

Conn.Execute(SQL)
```

kan ha glömt något..

Permalänk: https://www.webforum.nu/p/1072948

## #3 — hEWRa, 2003-06-03T11:35Z

Ska testa det där, tack för det snabba svaret! :)

Permalänk: https://www.webforum.nu/p/1072951

## #4 — hEWRa, 2003-06-03T11:37Z

Hum det där fungerade inte alls, den funktionen tog bort all info jag postade till databasen när ja använde mig av ett ' tecken

Permalänk: https://www.webforum.nu/p/1072953

## #5 — voigtann1, 2003-06-03T11:44Z

prova denna:

```
        Function secure(mess)

          Set objRegExp = New regexp
          objRegExp.Global = true
          objRegExp.IgnoreCase = true

          mess = Replace(mess, "'", "''")

          secure = mess
        End Function
```

Permalänk: https://www.webforum.nu/p/1072962

## #6 — hEWRa, 2003-06-03T11:47Z

Yepp, den funkar. Tackar! Vad är det den gör engeltigen? :)

Permalänk: https://www.webforum.nu/p/1072966

## #7 — voigtann1, 2003-06-03T11:51Z

ASP/SQL eller Access... tolkar ' som slut.. så du måste ha '' för att göra en ny.. typ.. finns många inlägg som svara bättre på din fråga.. prova att söka...

Jag tror du kan ändra om koden lite:

```
Function secure(mess)
          mess = Replace(mess, "'", "''")
          secure = mess
        End Function
```

Om du inte vill ha regulara uttryck senare
**Välkommen till wF** om ingen har sagt detta

Permalänk: https://www.webforum.nu/p/1072971

## #8 — @nders, 2003-06-03T11:51Z

voigtann1, varför lade du in Regexp-kod i funktionen? Den används ju inte?

Det här räcker: (voigtann1 hade bara glömt att returnera strängen från funktionen)

```
        Function secure(mess)
          secure = Replace(mess, "'", "''")
        End Function
```

Funktionen ersätter en apostrof med två, så att SQL-frågan inte förstörs. Det läggs alltså in en apostrof, och strängen ser ut precis som den ska. Den extra apostrofen i det här fallet kallas för escape-tecken.

Mvh

Permalänk: https://www.webforum.nu/p/1072975

## #9 — Peeer, 2003-06-03T11:52Z

> **voigtann1 skrev:**
>
> prova denna:
>
> ```
>         Function secure(mess)
> 
>           [b]Set objRegExp = New regexp
>           objRegExp.Global = true
>           objRegExp.IgnoreCase = true[/b]
> 
>           mess = Replace(mess, "'", "''")
> 
>           secure = mess
>         End Function
> ```

Varför har du med de markerade raderna? Fyller ju ingen som helst funktion.

Permalänk: https://www.webforum.nu/p/1072976

## #10 — voigtann1, 2003-06-03T11:54Z

Varm.. stressad... bal! :e

Permalänk: https://www.webforum.nu/p/1072977

## #11 — m_soderlund, 2003-06-03T11:55Z

En liten funktion till:

```
Function Fix(str)
str = Replace(str,"'","''")
Fix = str
End Function
```

Använd funktionen på allt du sätter in i databasen. Det här kallas för *SQL-injections* har jag för mig.. ;)

Permalänk: https://www.webforum.nu/p/1072978

## #12 — Peeer, 2003-06-03T11:58Z

m_soderlund: Varför posta en till likadan funktion som redan finns i tråden?

Permalänk: https://www.webforum.nu/p/1072981

## #13 — hEWRa, 2003-06-03T12:03Z

Strunt samma, nu vet jag i alla fall hur och varför man använder; som det nu troligtvis heter, SQL-injections. Tack :)

Permalänk: https://www.webforum.nu/p/1072985

## #14 — m_soderlund, 2003-06-03T12:52Z

> **Peeer skrev:**
>
> m_soderlund: Varför posta en till likadan funktion som redan finns i tråden?

Whoops, såg bara voigtann1s RegExp-funktion och inte den andra. Och sen lyckades jag missa @nders kod också.. ;) (Jag trycke på svara men surfade vidare nån annanstans och glömde bort mitt svar)

Permalänk: https://www.webforum.nu/p/1073020

---

Tråden på webben: https://www.webforum.nu/amne/asp/78770-kan-inte-skriva-ett-tecken-till-min-databas
