Y a-t-il une raison d'utiliser l'une par rapport à l'autre en termes de vitesse et de sécurité? Merci!real_escape_string vs instructions préparées
1
A
Répondre
1
Vitesse:
- Lorsque vous utilisez des paramètres bind vous pouvez réutiliser la même requête et plan de requête, en changeant simplement les paramètres. Lorsque vous générez une requête à partir de chaînes, la base de données doit analyser l'instruction.
- Avec les paramètres de liaison, l'analyseur SQL a également moins de travail à faire. Les paramètres ne sont pas échappés, donc l'analyse est plus simple.
Sécurité:
- À mon avis, il est beaucoup plus facile de se rappeler d'utiliser les paramètres que de se souvenir d'échapper à des chaînes.
+0
bien d'accord avec le point de sécurité. Il est si facile de passer à côté d'une chaîne, surtout quand il y a des valeurs que l'on peut espérer ne pas échapper comme des valeurs numériques. Il est beaucoup plus sûr et plus facile d'utiliser des déclarations préparées, et vous n'avez jamais à vous soucier d'oublier quoi que ce soit. De plus, il est tellement plus facile de lire une requête dans le code quand il n'est pas intercalé avec un tas d'opérateurs de concaténation. – Kibbee
Questions connexes
- 1. Instructions préparées Avec MySQL dans .Net @ VS.?
- 2. Instructions préparées MySQLi?
- 3. Instructions préparées dans Entity Framework
- 4. Doctrine SQL et instructions préparées
- 5. Que sont les instructions préparées?
- 6. mysqli_real_escape_string ET les instructions préparées?
- 7. Instructions préparées et expression IN
- 8. Comment fonctionnent les instructions préparées?
- 9. instructions préparées dans rails/activerecord
- 10. Instructions préparées pour ODBC dans VB.net
- 11. erreurs tout essayer d'exécuter ExecuteQuery/instructions préparées()
- 12. Npgsql: Comment faire des instructions préparées
- 13. Kohana Instructions préparées ou construction de requête?
- 14. php real_escape_string
- 15. Comment utiliser les clauses IN avec les instructions préparées mysqli
- 16. Comment écrire des instructions préparées pour SQLite dans l'iPhone
- 17. Les instructions préparées dans PDO augmentent-elles réellement la sécurité?
- 18. Comment puis-je vérifier les instructions préparées émulées dans ADOdb?
- 19. Pourquoi ces instructions préparées ne fonctionnent-elles pas?
- 20. Interface Python vers Postgres avec des instructions réellement préparées?
- 21. Comment utiliser les instructions préparées avec Enterprise Library?
- 22. Comment puis-je résumer des instructions préparées mysqli en PHP?
- 23. Plusieurs valeurs dans where avec les instructions SQL préparées?
- 24. Noms de colonnes variables utilisant des instructions préparées
- 25. Les instructions préparées pour PHP PDO doivent-elles être échappées?
- 26. Instructions préparées et comment elles affectent les requêtes
- 27. Comment utiliser COUNT() avec MYSQLi et les instructions préparées?
- 28. connexion de base de données pour les instructions préparées
- 29. Comment utiliser les instructions préparées dans cette requête?
- 30. Les modèles de prédicat sont-ils identiques aux instructions préparées?
connexes: http://stackoverflow.com/questions/3101307/mysqli-prepared-statements-and-mysqli-real-escape-string –