Les transactions effectuées avec mysql_real_escape_string
-
30-09-2019 - |
Question
Travailler avec MySQL ces derniers temps, de PHP, je me demande à ce sujet:
- Quel est l'impact sur les performances en utilisant les temps de multiples
mysql_real_escape_string()
à un script? - Est-il utile d'essayer de réduire le nombre d'appels à cette fonction pour un script donné?
- détermine-t-il le jeu de caractères de la connexion à chaque fois est appelé, ou cette valeur est mise en mémoire cache?
Si un scénario est nécessaire, je pense à PHP, et la distinction entre texte et des chiffres, où le nombre (en utilisant intval()
, floatval()
ou moulages directs) peuvent être inclus sans appel.
La solution
Ne pas être sou-sage et de la livre stupide.
Vos questions sont dans le domaine des micro-optimisations. Création d'un index nécessaire ou la mise en cache certains résultats de la requête aura un ordre de grandeur plus d'avantages que se soucier de l'impact sur les performances de quelques appels à mysql_real_escape_string()
.
Par ailleurs, typecasting avec (int) $variable
est légèrement plus rapide que d'appeler intval($variable)
. Mais ce serait aussi un micro-optimisation.
Autres conseils
Si vous avez besoin d'échapper à l'entrée d'utilisateur avant l'entrée de base de données, vous devez utiliser mysql_real_escape_string()
... ne vous inquiétez pas trop sur l'optimisation prématurée.
Vous pouvez regarder dans les instructions préparées qui vous évitera de devoir appeler cette fonction à plusieurs reprises -. Et il est plus sûr car il sépare la logique SQL d'entrée utilisateur tout à fait