Я думаю, что у меня проблема с кодировкой URL. Мне нужно открыть окно с помощью Javascript и передать ему запрос SQL Select. Так что я сделал это:Ошибка кодирования?
window.open('view_query.php?sql_query=' + query + '&db_name=' + db_name);
Это работает для меня, но у меня есть запрос, который нарушает это:
SELECT a FROM table WHERE field like '%adhoc%'
Теперь, когда откроется новое окно, и напечатать запрос, полученный от URL GET переменные выглядит следующим образом:
SELECT a FROM table WHERE field like '�hoc%'
Обратите внимание на битой %ad
превратились в непризнанный характер! Зачем?
Я пробовал решить это с кодировкой URL, но так как мне нужен символ %
, я не могу использовать много кодеров URL, так как они превратят это в нечто другое ?!
Спасибо всем за любую помощь.
Думаю, я понял! Я использовал escape(), и теперь он работает нормально! Может ли кто-нибудь подтвердить это, не вызовет никаких проблем с другими SQL-запросами, которые имеют странные символы - было бы легче узнать! – Abs
побег не годится. Если это должно быть на стороне JS, 'encodeURIComponent()' - это то, что вы ищете. Однако, делая кодирование на стороне сервера намного лучше –
, вы также знаете, что передача запросов с помощью запросов GET представляет собой огромный риск для безопасности? Я предполагаю, что это так, и это для некоторого инструмента администрирования mySQL, просто чтобы убедиться ... –