答案 0 :(得分:6)
更好地了解文档,它说明如下:
此函数与mysql_real_escape_string()相同,除此之外 mysql_real_escape_string()接受连接处理程序并转义 字符串根据当前字符集。函数mysql_escape_string() 不接受连接参数而不尊重当前 charset设置。
因此,mysql_escape_string
已被弃用。相反,请使用mysql_real_escape_string()
答案 1 :(得分:4)
因为mysql支持一些非常罕见的编码,其中mysql_escape_string将允许SQL注入,但mysql_real_escape_string()不会。
但是,只要你的编码是单字节或UTF-8,mysql_escape_string()就没有任何危害,人们可以毫不畏惧地使用它。
另一方面,需要注意的是,事实上mysql_real_escape_string()
如果单独使用则不会有任何好处。
只有在使用mysql_set_charset()
函数(或某些mysql服务器调整)设置了mysql驱动程序编码时,它才能正常工作。
否则它将与
另外需要注意的是,实际上两者这些功能都是不鼓励的,主要是因为使用不当。
而本地人则广泛推动使用PDO准备好的语句。
正如您现在可能猜到的那样,PDO准备好的声明如果单独使用,开箱即用将不会有任何好处。必须做一些准备工作 一个人必须要么
或者在处理一些非常罕见的编码方面,PDO和mysql_escape_string之间没有区别。