Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dois-je utiliser mysql_real_escape_string si je lie des paramètres ?

Non, vous n'avez pas à échapper la valeur vous-même (c'est-à-dire que non, vous n'avez pas besoin d'appeler mysqli_real_escape_string ) , lorsque vous utilisez des instructions préparées :le moteur de base de données le fera lui-même.

(En fait, si vous appeliez mysql_real_escape_string et en utilisant des paramètres liés, vos chaînes seraient échappées deux fois -- ce qui ne serait pas génial :vous vous retrouveriez avec des caractères d'échappement partout...)


En passant :vos valeurs sont passées sous forme d'entiers (comme indiqué par le 'ii' ) , vous n'aurez donc pas à appeler mysql_real_escape_string , même si vous n'utilisiez pas d'instructions préparées :comme son nom l'indique, cette fonction permet d'échapper... des chaînes.

Pour les entiers, j'utilise généralement intval pour m'assurer que les données que j'injecte dans mes requêtes SQL sont bien des entiers.

(Mais, comme vous utilisez des requêtes préparées, encore une fois, vous n'avez pas à faire ce genre d'évasion)