Est htmlspecialchars assez pour éviter une injection SQL dans une variable entre guillemets simples?

Bien que de nombreuses sources de citer le htmlspecialchars fonction avec ENT_QUOTES être pas assez pour empêcher l'injection SQL, aucun d'entre eux fournissent une preuve de concept. Je ne vois pas de possibilité pour moi-même.

Considérons l'exemple suivant:

$username = htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8');
$sql = "SELECT * from user WHERE name='$username'";
mysql_query($sql,...);

Quelqu'un peut-il donner un exemple, AUTRES que ceux couverts par le cas lorsque L'injection SQL est mysql_real_escape_string()?

pourquoi ne demandez-vous?
suffit d'utiliser mysqli
ce mysql_real_escape_string?
PHP htmlspecialchars fonction est pour échapper les caractères qui ont une signification spéciale navigateur, tels que des crochets, pour les faire apparaître comme des caractères normaux au lieu d'être interprété comme le balisage HTML. Il a rien pour faire avec SQL ou la prévention de l'injection SQL.

OriginalL'auteur crenate | 2014-03-01