Moin!
Das reine Update-Statement sieht so aus:
if (!empty($id)) $query = "UPDATE Weinevents SET weinevent = '$weinevent' WHERE id = $id";Du solltest sicherheitshalber mysql_real_escape_string() auf $weinevent anwenden (das nur nebenbei).
Nicht nur auf $weinevent, sondern grundsätzlich auf alles, was man von außen in ein SQL-Statement tut - auch $id.
MySQL stört sich auch nicht dran, wenn Feldwerte, die Zahlen darstellen sollen, in Anführungszeichen stehen - und mysql_real_escape_string() funktioniert nur, wenn der escapete String in Anführungszeichen steht.
Also Faustregel:
Alle Variablen, die man in ein SQL-Statement tut, und die möglicherweise von außen manipuliert sind, müssen immer
a) in Anführungszeichen stehen
b) durch mysql_escape_string() oder mysql_real_escape_string() behandelt werden.
Was zur Folge hat, dass man derartige Variablen nicht benutzen kann, um Dinge im SQL dynamisch einzufügen, die nicht in Anführungszeichen stehen dürfen, beispielsweise Feld- oder Tabellennamen. Hierfür muß man sich dann andere Sicherungsmaßnahmen überlegen.
- Sven Rautenberg
My sssignature, my preciousssss!