Hi! danke für die antwort!
du hast ja recht, es funktioniert auch alles einwandfrei, nur benötige ich eben sämtliche statements, um sie in ein logfile zu schreiben (während eine dazanbank gewartet wird).
noch ideen?
Du unterliegst dem Trugschluss, dass zwangsläufig an irgendeinem Punkt ein SQL-Statement existiert, in dem alle deine Daten hart kodiert sind, das so zum Server geschickt wird.
Das trifft aber nur zu, wenn die Schnittstelle nichts besseres unterstützt, die meisten allerdings erlauben es, die Daten direkt in die Datenbank zu geben, ohne sie vorher syntaktisch in SQL einzubetten. Für ein bessers Verständnis stelle man sich vor, dass die Datenbank selbst Platzhalter im SQL-Query akzeptiert und dann die Daten einsetzt, ohne dass jemals beides direkt aufeinandertrifft.
a)
prepare: INSERT INTO foo VALUES(?,?) ---> zur Datenbank
execute: [wert1] [wert2] ---> zur Datenbank
Nur wenn der DBD das nicht kann, passiert folgendes
b)
prepare: INSERT INTO foo VALUES(?,?) ---> bleibt im $sth
execute: [wert1] [wert2] ---> werden eingebettet
INSERT INTO foo VALUES(wert1,wert2)* ---> zur Datenbank
Der mit * gekennzeichnete Ausdruck wird im Regelfall nicht erzeugt. Deswegen gibt es auch keine Möglichkeit, diesen "ausgefüllten" Ausdruck von DBI zu bekommen, denn Fall b) wird unsichtbar gekapselt und nicht mehr stattfinden, wenn eine neuere Version des DBD a) durchführen kann.
Das "ausfüllen" musst du entweder selbst machen oder das Logging verändern (wozu überhaupt komplette SQL-Queries loggen, das bläht nur auf?)