Pour éviter les injections SQL en PHP, vous devez utiliser les requêtes paramétrées. Pour utiliser une requête paramétrée, vous devez utiliser soit Mysqli, soit PDO. Pour réécrire votre exemple avec mysqli, nous aurions besoin de quelque chose comme ceci.
<?php
$mysqli = new mysqli("server", "username", "password", "database_name");
$age = $_POST["age"];
$stmt = $mysqli->prepare("INSERT INTO person (age) VALUES (?)");
// "s" signifie que la base de données attend une chaîne de caractères
$stmt->bind_param("s", $age);
$stmt->execute();
La fonction clé sur laquelle vous voudrez vous documenter est mysqli::prepare.
En plus, vous pouvez trouver plus facile de passer à un niveau d’abstraction supérieur avec le PDO.
Je vous recommande d’utiliser PDO (PHP Data Objects) pour exécuter des requêtes SQL paramétrées.
Non seulement cela protège contre les injections SQL, mais cela accélère également les requêtes.
Et en utilisant PDO plutôt que les fonctions mysql_, mysqli_, et pgsql_, vous rendez votre application un peu plus abstraite de la base de données, dans le cas où vous devriez changer de SGBD.