2
A
回答
4
因为有一些非常罕见的编码支持mysql,其中mysql_escape_string将允许SQL注入,但mysql_real_escape_string()不会。
然而,只要你的编码或者是单字节或UTF-8,也不会有害处从函数mysql_escape_string()曾经和一个可以不用担心使用它。
另一方面,要注意的是,实际上mysql_real_escape_string()
如果单独使用将不会有什么好处。
如期望仅当MySQL驱动编码设定,使用mysql_set_charset()
函数它将工作(或通过一些MySQL服务器TWEAK)。
否则会起到正是因为诽谤函数mysql_escape_string以同样的方式()。
另外值得注意的是,实际上都这些功能是不鼓励,主要是因为不正确的使用。
而本地人则会广泛推送PDO准备好的语句来代替使用。
正如你可能已经猜到了,如果单独使用,开箱即用的PDO准备语句将没有任何好处。必须采取一些准备。
一个必须要么
- 关断模拟模式,这是在默认情况下
- 或设置我们的老朋友 - MySQL驱动编码 - 而这种诉讼是在DSN只允许和仅自5.3 0.3。
或者在代理某些非常罕见的编码方面,PDO和mysql_escape_string之间没有区别。
6
拿在文档更好看,它说以下内容:
此功能是相同的mysql_real_escape_string()除了 mysql_real_escape_string()需要一个连接处理器和脱 字符串根据当前字符集。函数mysql_escape_string() 并不需要一个连接的参数,不尊重当前 字符集设置。
因此mysql_escape_string
已被弃用。相反,使用mysql_real_escape_string()
相关问题
- 1. 为什么setAnimationDidStopSelector不鼓励?
- 2. 为什么Debug.Print不鼓励?
- 3. 为什么伞架不鼓励?
- 4. 为什么不鼓励使用Resources.getIdentifier()
- 5. 为什么使用`!重要`不鼓励?
- 6. 为什么不鼓励LD_PRELOAD的使用?
- 7. 为什么sun.misc不鼓励使用?
- 8. 为什么jQuery似乎不鼓励使用常规的OOP?
- 9. CNAME链不鼓励?
- 10. 为什么不可变的null不鼓励?
- 11. 投掷泛型异常不鼓励?
- 12. 为什么不鼓励Java EE容器中的产卵线程?
- 13. 为什么不鼓励使用单身模式?
- 14. 为什么std :: string/std :: map不鼓励在堆上创建?
- 15. Ruby为什么不鼓励其他语句?
- 16. 为什么不鼓励在Shiny includeScript()中使用绝对路径?
- 17. 为什么不鼓励直接实例化Dialog类?
- 18. 为什么GAE中的URL重写不被鼓励?
- 19. 为什么在Silverlight 4中不鼓励使用触发器?
- 20. 为什么在SQLAlchemy中不鼓励这种模式?
- 21. 为什么不鼓励前端的OAuth密钥?
- 22. 为什么要标记组件ComVisible(true)不鼓励?
- 23. 为什么Qt不鼓励图像的本地化?
- 24. 为什么鼓励java hibernate-mapped对象成为POJO的对象?
- 25. 由于Django不鼓励将参数传递给模板中的函数,因此鼓励什么呢?
- 26. 为什么django社区鼓励使用Postgres over Mysql?
- 27. 为什么鼓励使用处理程序的私有变量?
- 28. “ObjectMessage的用法一般不鼓励”,用什么来代替?
- 29. Java中的“不鼓励参考”是什么意思?
- 30. 为什么混合'从x进口y'和'进口x'不鼓励?