Mailinglisten-Archive |
Hey zusammen ... Vielleicht erhalte ich hier für mein Problem eine Hilfestellung in Zusammenhang mit PHP und InterBase. In meiner IB DB habe ich ein BLOB Feld als "TYPE 1 SEGMENT SIZE 120" deklariert. Nun möchte ich eine etwas doch größere Datenmenge (TEXT) aus meinem PHP Script dort speichern bzw. updaten. Leider kommen die Daten in der DB nicht so an (MENGE), wie ich sie im PHP Script abgeschickt habe. InterBase speichert immer nur eine bestimmte Menge von Daten. An IB oder dem FeldType liegt es selber nicht, da ich in der IB Console meine Daten rechtwohl speichern kann. Hier mein Script: //----------------------------------// $DB = ibase_pconnect("server:g:\\Database\\MAIN.GDB","sysdba", "masterkey" ); $blob_id = ibase_blob_create(); ibase_blob_add($blob_id, $blob_data); $blob_id_str = ibase_blob_close($blob_id); $sth = ibase_prepare('INSERT INTO cms_cache_content (HASH,CONTENT,IDENT) VALUES (?,?,?)'); $trans=ibase_trans(); ibase_execute($sth, '$hash', $blob_id_str, '$ident'); ibase_free_query($sth); ibase_commit($trans); ibase_close($DB); //----------------------------------// $blob_data ist ein String mit mehreren Bytes! Zerlege ich nun diesen String in mehrere Teile, werden die Daten korrekt gespeichert. Das ist Programmtechnisch aber nicht immer machbahr und ich somit, mit dieser Lösung nichts anfangen kann. eg: ibase_blob_add($blob_id, $blob_data1); ibase_blob_add($blob_id, $blob_data2); ibase_blob_add($blob_id, $blob_data3); Ein anderer Lösungsansatz den ich getestet habe ist ein "INSERT" mit "BLOB FELD" null und ein anschließendes Update, bringt aber auch wieder das selbe Problem. So bin ich mit meinem Latein am Ende und hoffe auf eure Hilfe. Warum speichet nun PHP nicht alle Daten? BS: XP/IIS & LINUX SUSE 8.0/Apache => PHP 4.2.1 & 4.2.2 Vielen Dank HEIKO
php::bar PHP Wiki - Listenarchive