---
title: "Enkelcitat som ställer till det i frågor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/63359-enkelcitat-som-ställer-till-det-i-frågor"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "MoonCow"
published: "2002-12-29T19:12:55.000Z"
updated: "2002-12-30T11:39:45.000Z"
replies: 9
views: 356
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/databaser-sql/63359-enkelcitat-som-ställer-till-det-i-frågor"
---

# Enkelcitat som ställer till det i frågor

## #1 — MoonCow, 2002-12-29T19:12Z

Hejsan! Med sådanhär kod:

```
strSQLgb = "INSERT Into gb (motagare,mess,nowen,last,usrbild,fran) VALUES('" & till & "','" & Request.Form("mess") & "','#" & now & "#','nej','" & Anvbild & "','" & Session("namn") & "')"
```

så lägger jag till information i min databas vilken är en mySQL,
detta funkar ganska bra tills man kommer till att det meddelandet som skrivs till databasen inehåller ett ', ett enkelcitattecken (om det är så det kallas). Då bryts ju frågan och man får ett felmeddelande. Vilket är bästa lösningen på detta? Att använda en Replace för att trolla bort enkelcitattecknena? fast det vill man ju helst inte...

mvh, Max

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

## #2 — OveRRidE, 2002-12-29T19:58Z

Använder du ASP? Jag vet inte hur det fungerar i PHP, men såhär gör vi ASP-are iallafall: 

```
INSERT INTO table SET kolumn = '" & replace(request.form("falt"),"'","''") & "'"
```

Alltså ersätter en ' med två. Då blir det rätt. 

Eller så är jag ute och vimsar. ;)

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

## #3 — Peeer, 2002-12-29T20:25Z

> **OveRRidE skrev:**
>
> Eller så är jag ute och vimsar. ;)

Nopp, jag tror på din lösning! :)

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

## #4 — MoonCow, 2002-12-29T22:35Z

Man tackar...
det funkade förträffligt :)
gott nytt år!

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

## #5 — Jörgen HP, 2002-12-29T22:42Z

För att slippa skriva en replace på alla variabler i sql-frågorna är det lättare att göra en funktion som fixar saken:

```
function replaceBadChar(sfix)
sfix = Replace(Trim(sfix), "'", "''")
replaceBadChar = sfix
end function
```

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

## #6 — kristoffer, 2002-12-29T23:23Z

Bättre är väl att använda lagrade procedurer. Som ni gör så ändrar ni ju innehållet.

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

## #7 — OveRRidE, 2002-12-30T02:56Z

> **kristoffer skrev:**
>
> Bättre är väl att använda lagrade procedurer. Som ni gör så ändrar ni ju innehållet.

Inte alls. Ersätt en ' med två ' så kan jag garantera att det bli en ' i den färdiga strängen, vilket även är exakt samma som originalet. 

Om nu inte någon annan formatering äger rum någon annanstans.

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

## #8 — P, 2002-12-30T09:58Z

Finns ju andra fördelar med lagrade procedurer... snabbhet!

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

## #9 — LarsG, 2002-12-30T10:04Z

Mysql har inte stöd för lagrade procedurer.

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

## #10 — MoonCow, 2002-12-30T11:39Z

> **Jörgen HP skrev:**
>
> För att slippa skriva en replace på alla variabler i sql-frågorna är det lättare att göra en funktion som fixar saken:
> 
>
>
> ```
> function replaceBadChar(sfix)
> sfix = Replace(Trim(sfix), "'", "''")
> replaceBadChar = sfix
> end function
> ```

Jepp, tack :). Var även så jag gjorde själv...

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/63359-enkelcitat-som-ställer-till-det-i-frågor
