提问人:RobertPitt 提问时间:9/8/2010 最后编辑:DharmanRobertPitt 更新时间:4/23/2022 访问量:70712
mysql_escape_string VS mysql_real_escape_string
mysql_escape_string VS mysql_real_escape_string
问:
我知道它已从 5.3 中弃用,但 .mysql_escape_string
mysql_real_escape_string
我所想的是,这与 mysql 资源的第二个参数完全相同。mysql_real_escape_string
mysql_escape_string
mysql_real_escape_string
所以后来我想,在如何处理字符串方面肯定有一些区别,因为不需要 2 个函数。
所以后来我认为差异纯粹在于语言环境和字符编码?
答:
井。。。有点,是的。它考虑了MySQL连接的字符集。
http://php.net/mysql_escape_string
此函数与相同,只是它采用连接处理程序并根据当前字符集转义字符串。 不采用连接参数,也不遵循当前字符集设置。
mysql_real_escape_string()
mysql_real_escape_string()
mysql_escape_string()
不同之处在于,它只是将字符串视为原始字节,并在它认为合适的地方添加转义。mysql_escape_string
mysql_real_escape_string
另一方面,它使用有关用于 MySQL 连接的字符集的信息。这意味着在正确处理多字节字符时对字符串进行转义;也就是说,它不会在字符中间插入转义字符。这就是为什么您需要连接;为了知道应该如何处理字符串,这是必要的。mysql_real_escape_string
但是,与其转义,不如使用 MySQLi 库中的参数化查询;转义程序中以前存在错误,并且可能会再次出现一些错误。参数化查询更难搞砸,因此您不太可能受到 MySQL 错误的影响。
评论
mysql_escape_string
从 5.3 起不推荐使用,但对于 4.3.0 及更高版本。
因此,任何使用PHP以上版本/或4.3.0的人都应该使用。mysql_real_escape_string
如果使用 ,而不是让你从php.ini,虽然建议更新,但如果你的代码会有问题,那么请确保你使用,而不是 。php < 4.3.0
magic_quotes_gpc active
magic_quotes_gpc
addslash
mysql_escape_string
现在,这两个函数都已弃用
PHP 4 >= 4.3.0 和 PHP 5。 他们建议使用扩展
PDO_MySQL
评论