在我使用的旧服务器上,我无法使用预准备语句,我目前正在尝试完全转义用户输入,然后再将其发送到MySQL.为此我使用PHP函数mysql_real_escape_string.
由于这个函数没有逃脱MySQL通配符%和_我也用它addcslashes来逃避这些.
当我发送类似的东西:
test_test " '
Run Code Online (Sandbox Code Playgroud)
到数据库然后读回数据库显示:
test\_test " '
Run Code Online (Sandbox Code Playgroud)
看着这个我无法理解为什么_有一个前面的反斜杠但是'和'没有.因为它们全部用\ _确定_'并且"应该都显示相同,即所有都具有转义字符可见或一切都没有可见.
是否会自动筛选转义
有谁能解释一下?