Sofern Du deine Parameter z.B. direkt über die API und nicht als SQL-Befehl setzt, sind Prepared Statements gegen SQL-Injections geschützt.
Hintergrund ist der, dass man durch die Parameter SQL schon im Vorfeld mitteilt, wo Parameter sind und somit eine Durchmischung von verschiedenen Programmkontexten (Code und Daten) vermeidet.
Bei deinem Beispiel wäre die SET-Zeile angreifbar. Dafür gibt es aber in PHP eine direkte Funktion (mysql_bind_param), mit der das vermieden werden kann.
_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.