Mailinglisten-Archive |
Hi Enrico > ist es generell noetig, vorher eine transaktion zu starten ? > (vielleicht ist ja das der grund warums bei mir nie funktionierte) Im psql ist es nicht noetig, da geht es mit li_import('pfad/dateiname'). Du brauchst eben nur die Zugriffsrechte. Sobald eine Applikation BLOBS schreiben oder lesen will, muss das in eine Transaktion. Auf der Startseite der PostgreSQL-Funktionen im PHP-Manual ist ein Beispiel fuer ein Blob, in das man reinschreibt. Fuer Bilddateien reicht ein pg_loimport(). So funktioniert's bei mir: $name = $HTTP_POST_FILES['updatei']['name']; $typ = $HTTP_POST_FILES['updatei']['type']; $size = $HTTP_POST_FILES['updatei']['size']; $tmpname = $HTTP_POST_FILES['updatei']['tmp_name']; ... pg_exec("begin"); $loid = pg_loimport($name); $sql = "INSERT INTO bilder (bild, name, size, typ, htmlstr) values ($loid,'$name', $size, '$typ', '$htmlstr');"; $res = pg_exec($sql); pg_exec("commit"); Die Tabelle bilder hat *bild* als Feld vom Typ oid fuer das large Object. > btw waere fuer mich noch interessant, welchen overhead ein solch ein > blob hat, bzw ab welcher obj-groesse es sich lohnt. Keine Ahnung;-) > ob nicht eine unterscheidung sinnvoll ist und man kleine files nicht > besser direkt in einer tabelle gespeichert werden sollten. Dann wird man sie aber codieren muessen, was wiederum Overhead ist. Oder mit welchem Datentyp dachtest Du, wird das ohne Codierung gehen? Gruss Conni
php::bar PHP Wiki - Listenarchive