---
title: "Escapa enkelfnuttar och dubbelfnuttar!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/44428-escapa-enkelfnuttar-och-dubbelfnuttar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Neo"
published: "2002-05-23T18:41:33.000Z"
updated: "2002-05-23T20:22:39.000Z"
replies: 7
views: 290
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/44428-escapa-enkelfnuttar-och-dubbelfnuttar"
---

# Escapa enkelfnuttar och dubbelfnuttar!

## #1 — Neo, 2002-05-23T18:41Z

Hello!

Jag har problem med enkelfnuttar och dubbelfnuttar och INSERT:a i databasen...

Jag hämtar info som är postad förut och stämmer överens med t ex ett visst användarid, sen vill jag inserta samma info igen fast med ett annat användarid...

Problemet är att om det finns enkelfnuttar och dubbelfnuttar i de jag hämtar från databasen så pajar SQL-strängen för att inserta samma info!

Exempel:

variabel test kommer att innehålla, efter query i db:

$test = "onmouseover="this.src=('hurra.gif');""

Hur gör jag för att escapa detta on the fly?

//Neo

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

## #2 — @nders, 2002-05-23T18:43Z

Det borde fungera utmärkt att escape:a med backslash.

```
$query = "insert into table1 (field1) values ('onmouseover=\"this.src=(\\'hurra.gif\\');\"')";
```

Mvh,

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

## #3 — LAMP, 2002-05-23T18:47Z

där är väl en ' för mycket i @nders kod.

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

## #4 — @nders, 2002-05-23T18:49Z

Nja, snarare en för lite. Jag redigerar.

Mvh,

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

## #5 — Neo, 2002-05-23T18:54Z

Hej Anders!

Det funkar utmärkt men jag kanske var lite otydlig...

Koden ser inte ut så utan det där är vad varibeln skulle kunna innehålla...

Så här ser koden ut (lite förenklad):

\--------------

$sqlobject = "SELECT \* from pro_object_template WHERE user='$user_pro' AND pageid='$baseon'";
$resultobject = mysql_query($sqlobject);
$arrayobject = mysql_fetch_array($resultobject);
if (mysql_num_rows($resultobject)!=0) {
do {
// getid = new pageid
$content = $arrayobject\["content"\];

$sql_put_object = mysql_query("INSERT INTO pro_object_template (content) VALUES ('$content')");

} while ($arrayobject = mysql_fetch_array($resultobject));

}

\--------------------

Jag ser alltså inte vad $content innehåller...

// Neo

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

## #6 — @nders, 2002-05-23T19:01Z

Ja, jag visade bara teoretiskt. :)

Då får vi byta ut lite i php, det borde räcka att escape:a apostrof.

```
$content = str_replace("'", "\\'", $arrayobject["content"]);
```

Mvh,

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

## #7 — Elric, 2002-05-23T19:35Z

Har du testat med addslashes() ?

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

## #8 — Neo, 2002-05-23T20:22Z

Tack Anders!

Det funkar perfekt!

Det verkar som att när man hämtar upp info ur databsen så ersätts \\ med ett space-tecken... är det så?

// Neo

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/44428-escapa-enkelfnuttar-och-dubbelfnuttar
