Se passi tutte le stringhe provenienti da richieste post e get che devono interagire col DB alla funzione mysql_real_escape_string() hai risolto il problema al 95%

Poi quando ricevi dati get o post fa anche un controllo che contengano dati coerenti con ciò che ti aspetti, del tipo che se deve arrivare un numero e invece arrivano dei caratteri alfabetici o segni di interpunzione o altro blocchi l'esecuzione e mostri un messaggio d'errore, se ti aspetti una stringa di tot caratteri e ne arriva una più lunga o più corta fai lo stesso e così via.

Non ci vuole poi molto a mettersi al sicuro da SQL injection.