Array als String speichern

Raven280438

Erfahrenes Mitglied
Hi,

da ich nicht mit der PHP-Session arbeiten will, speichere ich Variablen in einer MySQL-Datenbank. Dazu "missbrauche" ich die $_SESSION - Variable.
Zu Beginn des Skripts werden die Variablen aus der Datenbank ausgelesen, und am Ende werden sie wieder in die Datenbank gespeichert. Dazu erstelle ich einen String. (Key1|Value1|Key2|Value2|... )

Das funktioniert auch wunderbar. Aber wie kann ich jetzt ein Array damit speichern? Hat jemand ne Idee?

Auslesen der Variablen:
PHP:
if ($session_id) {
  $get_vars = abfrage("SELECT variablen FROM session_website WHERE nummer='$session_id' LIMIT 1");
  list($var) = mysql_fetch_row($get_vars);
  $tmp = explode("|",$var);
	for ($i=0;$i<count($tmp);$i=$i+2) {
		if ($tmp[$i])
			$_SESSION[$tmp[$i]] = $tmp[$i+1];
	}
}

Speichern in der Datenbank:
PHP:
$var = "";
foreach($_SESSION as $key => $value) {
	if (trim($key) && trim($value)) {
		$var .= $key."|".mysql_escape_string($value)."|";
	}
}
abfrage("UPDATE session_website SET variablen='$var' WHERE nummer='$session_id'");

(Die Funktion abfrage() sendet einfach ein Query und gibt das Ergebnis zurück)



Gruß
 
Zurück