MySQL 函数需要连接才能转义字符串的原因是,它所做的只是mysql_real_escape_string()调用 MySQL 的内置转义函数。
但是,如果您阅读它的手册页,您会发现它们确实列出了转义的字符:
mysql_real_escape_string() 调用 MySQL 的库函数 mysql_real_escape_string,该函数在以下字符前面添加反斜杠:\x00、\n、\r、\、'、" 和 \x1a。
您不想使用,addslashes()因为它只会转义几个字符,并且不会提供安全的解决方案。但是您应该能够通过使用给定的字符列表重新实现转义mysql_real_escape_string(),只需简单调用strtr()或类似:
$replacements = array("\x00"=>'\x00',
"\n"=>'\n',
"\r"=>'\r',
"\\"=>'\\\\',
"'"=>"\'",
'"'=>'\"',
"\x1a"=>'\x1a');
$escaped = strtr($unescaped,$replacements);
Run Code Online (Sandbox Code Playgroud)