MySQL-Typ SET

deinertsche

Erfahrenes Mitglied
Hi!
Ich möchte ein array in meiner Datenbank speichern.

$test = array("eins", "zwei");
"UPDATE Tabelle SET spalte='$test'"

Die spalte in der Datenbank hat den Typ SET ('eins','zwei','drei').

Er fügt aber leider nix ein und da frag ich mich wieso er das nicht tut :-(

ps: nein, den mysql_query hab ich nciht vergessen, hab ihn nur in meinem posting weggelassen
 
Na gut, wenn mir keine antwortet *seufz*, dann wandel ich halt mein array vorm reinschreiben mit implode(",",$test) um,
...und später nach dem auslesen mit explode wieder zurück in ein array
 
hehe

naja ... er speichert in der Datenbank nicht das Array selbst, sondern lediglich die zeichenkette 'array' ... hinter dem array versteckt sich eine resource #id .. diese id speichert er aber nicht in der mysql tabelle ab, da sonst eine speichererletzung vorliegen würde.

am ende jedes scriptes wird der benutzte speicher wieder vom system freigegeben - wenn du nun die resource #id in der datenbank abspeichern würdest, verweißst du ja auf eine speicheradresse in deinem speicher, in dem dein array garnicht mehr drinne steht. Wäre das möglich, so müßte man für php einen blue screen erfinden :p

Rob
 
ein SET ist eine menge und eine menge ist kein array/liste, das solltest du wirklich nicht miteinander mixen.

wenn du aber wirklich eine menge haben willst, ist ein SET was feines:
http://www.mysql.com/doc/S/E/SET.html ;)
 
Zuletzt bearbeitet von einem Moderator:
Zurück