不同之处在于,MysqL_escape_string
仅将字符串视为原始字节,并在认为合适的位置添加了转义。
MysqL_real_escape_string
另一方面,使用有关用于MysqL连接的字符集的信息。这意味着在正确处理多字节字符的同时对字符串进行了转义。即,它不会在字符中间插入转义字符。这就是为什么需要连接的原因MysqL_real_escape_string
;有必要知道如何处理字符串。
但是,与其转义,不如使用MysqLi库中的参数化查询,这是一个更好的主意。转义例程中以前存在错误,并且有可能再次出现。参数化查询的难度大得多,因此,MysqL漏洞影响的可能性较小。