Наиболее вероятная проблема заключается в том, что у вас включено magic_quotes на одном сервере, но не на другом.Отключите magic_quotes или измените код:
$example = stripslashes($_POST['example']); //undoes the magic_quotes
$escaped_string = mysql_real_escape_string($example); //escapes it properly.
Менее вероятный сценарий может возникнуть, если у вас есть 2 подключения к 2 разным серверам баз данных.у вас открыт.
Если у вас есть несколько серверов и, следовательно, несколько подключений, вам нужно запускать функцию выхода один раз для каждого подключения.
Пример
$example = "a'b";
$connectionA = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$connectionB = mysql_connect('remotehost', 'mysql_user', 'mysql_password');
$escapedstringA = mysql_real_escape_string($example, $connectionA);
$escapedstringB = mysql_real_escape_string($example, $connectionB);
Если вы пропустите параметр соединения в вызове mysql_real_escape_string
, обе экранированные строки будут экранированы с использованием кодировки по умолчанию для удаленного хоста, что неверно.
Этот код может работать некорректно:
$example = "a'b";
$connectionA = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$connectionB = mysql_connect('remotehost', 'mysql_user', 'mysql_password');
$escapedstringA = mysql_real_escape_string($example); //uses remotehost's encoding
$escapedstringB = mysql_real_escape_string($example);