PHP und Datenbank Datensatz neu einlesen

  • Hallo,

    hab da mal eine Frage.
    Ich lasse aus einer Datenbank einige Datensätze auslesen. Wenn eine Regel eintrifft wird der Datensatz Neu angelegt und bekommt einen Zeitstempel mitgegeben.
    Mein Problem dabei ist, dass ich ein BLOB Feld habe wo Binäre Daten gespeichert sind. Wenn ich die per SQL Befehl kopiere funktioniert das. Möchte ich diese aber nachdem auslesen wieder speichern bricht der INSERT Befehl ab, irgendwie kommen die DAten nicht mehr so rein wie sie rauskamen.

    Wenn ich die Binären Daten nachdem auslesen und vor dem speichern mit addslashes() umwandle wird es korrekt gespeichert, aber ich kann die daten dann nicht mehr vernünftig aus der DB auslesen, auch nicht mit stripslashes.

    Gibts da ne Variante um Binäre Daten vernünftig in die DB zu schreiben?

    Achja, beim 1. erstellen der Datensätze werden die BLOB Daten mit fopen ausgelesen.

    Über Hilfe würde ich mich freuen :)

    Danke :)

  • Hi,

    danke für die Antwort.
    Das war auch erst meine Idee, aber ich will keinen haufen an Dateien auf dem Server, da nur kleine gespeichert werden (maximal 50kb) sollen die mit in die Datenbank.

    hm.
    Das auslesen in Dateiformat und anzeige, und einlesen beim upload funktionieren einwandfrei.

    Will eigentlich nur den Datensatz in der DB kopieren, und während dem kopieren ein paar Felder anpassen.

    Mit SQL:

    SQL
    INSERT INTO tbl_1 SELECT * FROM tbl2 WHERE tbl2.edt = 'wert'


    kann ich einfach den DS kopieren, da kopiert der auch den Blob ganz sauber mit.
    Aber hier kann ich ja keine Felder anpassen.

    Mein Gedanke war eine Funktion die folgendes macht:
    - alle Datensätze der Tabelle mit while ausgeben
    - jeder Datensatz wird überprüft ob die Regel eintrifft
    - Trifft die Regel ein wird dieser Datensatz neu gespeichert
    - Beim Neuspeichern schreib ich erstmal nen Neuen SQL Insert mit allen Feldern + den Neuen
    - Dann wieder den Insert an die Datenbank
    - Schleife läuft bis zum ende weiter.

    Die Funktion hab ich und funktioniert auch, wenn ich die BLOB Felder weglasse.
    Wenn ich die BLOB Felder aber mit speichern will klappt das nicht.
    (außer ich lasse die BLOB sachen mit addslashes() umformen funktionierts, aber die daten sind beim ausgeben kaputt :( )

    Irgendwie scheint der SQL Befehl die Blob Daten nicht zu mögen, die ich über die While Schleife ausgebe.

    Das komische daran, beim ersten Eintragen der Daten mit fopen der Datei speichert der ohne Probleme.

    Den Insert mach ich so:

    SQL
    INSERT INTO tbl_tabelle (feld1, feld2, feld3) VALUES('wert1','wert2','wert3')

    Dabei werden auch die Blob Daten in ' ' dargestellt. Ohne gehts aber auch nicht :(.