Das kommt kaum von "ganz plötzlich". An den Platzhaltern von sprintf() hat sich seit Ewigkeiten nichts grundlegendes geändert.
Das ist ganz sicher plötzlich, weil als ich es vorher getestet habe mehrmals gab es keine Probleme mit %% jetzt aber halt.
Aber darüber zu "streiten" macht jetzt auch keinen Sinn. Wie müsste es den richtig heißen, wenn ich eine Abfrage machen möchte aber kein exakten Typ angebe? Also weder string s noch integer d??
$sql = sprintf("INSERT INTO kunde ( vorname, name, alter, strasse, ort, beschreibung)
VALUES ('%', '%', '%', '%', '%', '%')",
usw...
dann verschwinden die Kommata und er zeigt nur noch die ' an.