dedlfix: sprintf und das %-Zeichen

Beitrag lesen

Tach!

Ich benutze für meine Queries sprintf und seit heute werden % in die DB geschrieben anstatt sie leer zu lassen wenn die Variable leer ist.
$sql = sprintf("INSERT INTO kunde ( vorname, name, alter, strasse, ort, beschreibung)
VALUES ('%%', '%%', '%%', '%%', '%%', '%%')",

Kein Wunder, denn %% steht für ein %. Du willst %s haben.

mysql_real_escape_string($vorname),
Die Variablen werden mittels $_POST abgefragt.

Das ist für das Problem egal, aber warum verwendest du nicht gleich die Elemente aus dem $_POST-Array sondern nimmst neue Variablen?

Das merkwürdige ist das ich nichts an dem Quellcode verändert habe. Vorher hat er Variablen die leer waren auch leer bzw nichts geschrieben.
Hat jemand eine Idee wieso das plötzlich anders ist?

Das kommt kaum von "ganz plötzlich". An den Platzhaltern von sprintf() hat sich seit Ewigkeiten nichts grundlegendes geändert.

dedlfix.