Ответ на немного другой вопрос
Это то, что называется «проблемой XY».Вы пытаетесь решить проблему Y («Удаление проблемных символов SQL из JSON»), когда ваша фактическая проблема - это проблема X:
Мне нужно извлечь ее позже из БД идержать его в переменной JavaScript.Затем я вызываю метод fromJson плагина jQuery, который я использую.
Итак, что вам нужно , нужно : " способ хранения текстового значения в SQL-нейтральное, JSON-нейтральное, Javascript-нейтральное представление".
Это можно сделать с помощью Base64.Используйте Base64 как «общий язык» между слоями вашего приложения - SQL, Javascript и PHP.Затем декодируйте значения, когда они входят в границу, и кодируйте их, когда они выходят снова:
$value = "string with weird JSON that won't go into SQL";
$val2 = base64_encode($value);
...now $val2 is stored into SQL and can be retrieved with no problems
(search can be difficult but can be done, somewhat).
Затем вы извлекаете $val2
и можете без проблем сохранить его в Javascript, только помните, что он base64.Да, это займет немного больше места, но в настоящее время это действительно проблема?
// Value recovered from SQL through PHP
var base64val = '{$val2}';
// base64val is a safe string, but useless.
var trueval = btoa(base64val);
// trueval is a JSON string, but not yet decoded.
var fromjson = JSON.parse(trueval);
// finally fromjson holds the real value
Теперь у вас есть рабочий процесс, в который все идет - вы можете поставить косые черты, долларзнаки, кавычки, двойные кавычки и, что еще более важно, множество символов UTF8, которые испортили бы мой предыдущий ответ (вы можете захотеть найти некоторые острые ощущения, читая о «искаженных атаках UTF8 и где их найти»).