Moin,
Hallo, ich lese über $_POST übergebene Variablen aus. Dann erfolgt ein UPDATE über die Datenbank.
Problem, nicht alle übergebenen Variablen existieren in der Datenbank als (Feldnamen)!
Das sollte dem Script egal sein. Du darfst auf keinen Fall einen Query anhand der übergebenen Parameter zusammenbauen (Ausnahme: du programmierst ein Tool zur Verwaltung der Datenbank) – das wäre eine gravierende Sicherheitslücke: ein Angreifer könnte zusätzliche Werte übertragen und damit u.U. Spalten überschreiben die nicht geändert werden dürfen.
Daher Fehler und Abbruch der PHP ausführung. (Fehler erst seit Umstellung von PHP 8.0 auf 8.1!!)
Einen Fehler hat das auch vorher schon geworfen. Allerdings wurde mit dem Update auf PHP 8.1 der Standardwert für die Fehlerbehandlung auf „exceptions“ geändert – bisher wurde dir der Fehler wohl einfach nicht angezeigt.
Frage: Wie kann ich die in der Datenbank existierenden Feldnamen mit den übergebenen Variablen (durch $_POST) vergleichen. (nicht die Inhalte!!)
Die Spalten einer Tabelle kannst du über die Tabelle INFORMATION_SCHEMA.COLUMNS abrufen, aber wie gesagt: mach es nicht, das Script muss selbst wissen welche Spalten geändert werden dürfen, das darf nicht vom Inhalt von $_POST abhängen!
Gruß
Tobias