Det bästa sättet att undvika injektioner är att använda Förberedda uttalanden
.
För förberedda uttalanden föredrar jag att använda PDO för att hantera alla mina DB-grejer. här är lite PDO-exempelkod jag skrev för att hämta lite grundläggande inloggningsinformation:
$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'];
... osv
Läs det här sida för mer information om SUB. Om du vill veta vad varje rad kod här gör, läs detta svar jag gav på ett annat inlägg.