---
title: "mysql, blob, array, '-tecken"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/82438-mysql-blob-array-tecken"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Bäckman"
published: "2003-07-21T20:44:34.000Z"
updated: "2003-07-21T22:00:59.000Z"
replies: 4
views: 223
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/php/82438-mysql-blob-array-tecken"
---

# mysql, blob, array, '-tecken

## #1 — Bäckman, 2003-07-21T20:44Z

Har problem när jag vill spara en array i ett mysql-fält av typen blob. Eller ja, det är inga problem så länge jag inte använda något enkelt citationstecken (').

Problemen uppstår när jag kör unserialize() på min array som jag får ut från databasen. Skulle någon kortfattat kunna beskriva hur jag ska gå tillväga för att det ska gå att spara en array i en databas och sedan kunna skriva ut den igen utan att det krånglar?

Hela detta inlägget blev väldigt diffust, men jag hoppas att någon har erfarenheter av detta iaf. :OO

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

## #2 — SPiN, 2003-07-21T21:14Z

Vad är det som inte fungerar? Visa gärna lite kod.

Följande bör fungera alldeles utmärkt:

```
<?php

$arr = array( "do", "re", "mi" );
addToDatabase( serialize( $arr ) );

...

$dbValue = getFromDatabase();
$myArr = unserialize( $dbValue );

if( !$myArr ) {
     echo "The $dbValue-variable was not unserializeable";
}
?>
```

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

## #3 — Bäckman, 2003-07-21T21:27Z

Mitt problem har utvecklat sig en aning, heh. Det är nämligen så att jag håller på med ett lite system för en poll, och finessen är att man ska kunna lägga till så många alternativ man önskar. Jag har därför alternativen och antal gånger man har röstat på dem i samma array.

Det kan se ut såhär t.ex.

```php
$StrQuestion = "Vilken är din favoritfärg?"; //Inte så relevant, bara kuriosa. :P

$array['alternative']['1'] = htmlspecialchars("Blå", ENT_QUOTES);
$array['alternative']['2'] = htmlspecialchars("Gul", ENT_QUOTES);
$array['alternative']['3'] = htmlspecialchars("Orange", ENT_QUOTES);

$array['result']['1'] = 0;
$array['result']['2'] = 0;
$array['result']['3'] = 0;
$StrAlternatives = addslashes(serialize($array));

...kör min insert i mysql-databasen...
```

Såhär långt är allt fint, och nu kan jag faktiskt presentera alla alternativ felfritt även om de innehåller '-tecken. Nu uppstod dock ett annat problem, nämligen när jag ska presentera resultaten också. Om jag har lagt in ett '-tecken någonstans i min array så får jag "undefined index: result". :(

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

## #4 — SPiN, 2003-07-21T21:44Z

Med htmlspecialchars() får du inte bort dina '-tecken, om du inte sätter en parameter till:

```
$str = htmlspecialchars( $str, ENT_QUOTE );
```

Och istället för addslashes(), försök med funktionen base64_encode() vid lagringen och base64_decode() vid hämtningen:

```
$StrAlternatives = base64_encode( serialize( $array ) );
```

Samt:

```
$StrAlternatives = base64_decode( unserialize( $array ) );
```

Fungerar det ändå inte, har jag inga direkta svar - men ett tips kan vara att baka in det i en klass att serialisera:
**AltKlass.php**

```
class AlternativesClass {
    // Metoder och fält för lagring av information
}
```

**Skrivning**

```
require( "AltKlass.php" );

$alternativeObject = new AlternativeClass();

$alternativeObject->store( "MyVar" ); // Exempelmetod

$serializedObject = serialize( $alternativeObject );
```

**Hämtning**

```
require( "AltKlass.php" );

$serializedVariable = getFromDatabase();

$alternativeObject = unserialize( $serializedObject );
```

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

## #5 — Bäckman, 2003-07-21T22:00Z

Förstår inte alls varför allt i $array\['result'\] ska börja strejka så fort man använder citationstecken i den \_andra\_ arrayen i arrayen, eller hur det nu blir...

Provade med base64_encode, det gjorde i princip ingen skillnad mot när man använda addslashes(). :\\

Knåpar vidare...

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

---

Tråden på webben: https://www.webforum.nu/amne/php/82438-mysql-blob-array-tecken
