Il modo migliore per evitare le iniezioni è utilizzare Dichiarazioni preparate
.
Per le dichiarazioni preparate preferisco usare PDO per gestire tutte le mie cose DB. ecco un codice di esempio PDO che ho scritto per recuperare alcune informazioni di accesso di base:
$sql=new PDO("mysql:host=127.0.0.1;dbname=name","user","password");
$user=$_POST[user];
$query="select Salt,Passwd from User
where Name=:user";
$stmt=$sql->prepare($query);
$stmt->bindParam(':user',$user);
$stmt->execute();
$dr=$stmt->fetch();
$sql=null;
$password=$_POST[pass];
$salt=$dr['Salt'];
... ecc
Leggi questo pagina per maggiori informazioni sulla DOP. Se vuoi sapere cosa sta facendo ogni riga di codice qui, leggi questo risposta l'ho data ad un altro post.