Причина, по которой функциям 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);