PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ein object in der datenbank speichern



derheini
31-03-2007, 21:00
Hi,

habe schon google befragt und im forum gesucht aber nix gefunde, oder ich bin zu blöd was zu finde.
Ich will folgendes machen:
Und zwar möchte ich ein Objekt welches ich per
$foo = new Bar(); erstellt habe binär in MySql ablegen.

hatte folgenden ansatz:


function writeDB() {
$Query = "INSERT INTO artikel (typ, artikel) values ('Bar', $this)";
mysql_query($Query, $dblink);
}

aber leider geht das nicht, bekomme ein

Catchable fatal error: Object of class Clothes could not be converted to string in /var/www/hp/shopsystem/artikel/clothes.class.php on line 17

zur mysql table typ ist ein varchar, sieht man ja und artikel ist ein blob.

hat einer ne idee wie ich dieses vorhaben verwirklichen kann?

mfg ich

derheini
01-04-2007, 10:14
hi,

habe gerade bissel in den google groups gesucht und die lösung gefunden, war zwar für perl aber man kann sie problemlos auch in php umsetzten.

Es gibt ein funktion Serialize (http://de.php.net/manual/de/function.serialize.php) "Erzeugt eine speicherbare Repräsentation eines Wertes", einfach diese über das Object laufen lassen und das Ergebnis ins sql-statement geben und feritg.

Zum auslesen das Ergebinis dann einfach wieder mit Unserialize (http://de.php.net/manual/de/function.unserialize.php) "Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP" umwandeln und verwenden.

mfg Ich

Pingu
01-04-2007, 10:37
Es gibt http://php.net/serialize. Allerdings weiss ich nicht, ob dies mit Objekten noch funktioniert. In PHP4 ja, aber in PHP5? Denn ab PHP5 werden Objekte anders verwaltet. AFAIK werden nur noch Referenzen verwaltet.

Pingu

undefined
01-04-2007, 22:30
**Kopfnick**
http://www.zend.com/forums/index.php?t=rview&th=147&goto=330