Итак, моя главная проблема с чем-нибудь, что идет между WHERE и ORDER BY, LIMIT и т.д.Настройка MySQL запросов с динамическими наборами данных в разделе
Я его в настоящее время установки, как показано ниже:
SELECT " . $column_string . " FROM " . $table_name . " " . $query_join . " " . $where . " " . $query_end . " " . $query_limit
Моя проблема заключается в том, что у меня есть настройка для проверки каждой переменной с помощью escape-строки, но когда вы приходите к $ query_end, который будет содержать test = '1' AND test2 = '2' и т. Д. У меня есть эта настройка раздела, отправьте всю строку за один раз. Но, конечно, если вы проверите, что он превратится в test = \ '1 \' AND test2 = \ '2 \'.
Единственное, что я мог придумать, это разделить его на какой-то странный массив вроде [test2 =], [2], но это не работает (test1 = '2' OR test2 = '3'), хотя я может заставить его работать, я действительно не хочу этого делать.
Может ли кто-нибудь предложить лучшее решение вышеуказанной проблемы? Также есть еще один элемент для проверки инъекции вне mysql-real-escape-string?
Вся эта установка позволяет мне отправлять несколько запросов через ajax с помощью json, а затем отправлять все данные обратно в 3-уровневый массив.
Я сомневаюсь, что вы получите разумные ответы на этот вопрос. Вы говорите о своей собственной настраиваемой настройке, где вы закодировали себя, чтобы автоматически избежать каждой переменной. Очевидно, вам нужно изменить свой собственный код/библиотеку, чтобы разрешить передачу определенных переменных через unescaped. Поскольку вы, как представляется, не используете известную инфраструктуру или библиотеку и не размещали свой собственный код, который показывает, как работает ваш механизм экранирования, нельзя рекомендовать конкретные изменения или обходные пути. –