Eigentlich sollte es schon ausreichend schützen.
Aber du kannst ja trotzdem noch Sachen dazumachen, wie zum Beispiel ein Check mit is_numeric, wenn der Wert immer eine Zahl ist.
Oder das checken auf bestimmte Werte, wenn die Variable nur aus eine bestimmte Menge Werte annehmen kann.
Und halt auf jedenfall register_globals ausmachen und alle Variablen mit Startwerten belegen (also alle Notices wegbekommen).
Edit: Ich hab grade htmlentities() mit mysql_real_escape_string() verwechselt. Ersteres bringt bei SQL Injection recht wenig, sondern hilft nur dabei zu vermeiden, dass ein Benutzer eigenen HTML Code auf die Seite einschleust. Also gegen SQL Injection
mysql_real_escape_string() verwenden. htmlentities() selbstverständlich nach Bedarf auch noch ...