sceiler: sprintf und das %-Zeichen

Beitrag lesen

Hallo,

ich bin total verwirrt und ratlos.

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.

Zum Beispiel:

$sql = sprintf("INSERT INTO kunde ( vorname, name, alter, strasse, ort, beschreibung)
VALUES ('%%', '%%', '%%', '%%', '%%', '%%')",
mysql_real_escape_string($vorname),
mysql_real_escape_string($name),
mysql_real_escape_string($alter),
mysql_real_escape_string($strasse),
mysql_real_escape_string($ort),
mysql_real_escape_string($beschreibung));

Die Variablen werden mittels $_POST abgefragt.

Das Problem ist: er schreibt in die Datenbank nur % Zeichen und selbst Zeitangaben mittels date() oder IDs aus einer Auswahl bekommt werden falsch geschrieben...

Die Ausgabe mit echo $sql bestätigt mir das es % sind die der Query bekommt aber auch das er zwar das richtige Datum mittels date bekommt aber nicht so reinschreibt wie es sollte. In der DB steht dann 0000-00-00 usw.

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?