Часто можна встретить такое утверждение, что невозможно использовать UNION после LIMIT.
Но я почему то этому не хотел верить и на локалхосте создал тестовый скрипт со следующим запросом:
PHP код:
SELECT * FROM news WHERE id=1 LIMIT 1,1 UNION SELECT 1,2,3,4/*
и оказалось что все нормально роботает!!!
и это на:
MySQL 4.1.13a-nt на localhost как root@localhost
Даже можна использовать второй ЛИМИТ в конце. Тогда первый отвечает за первый запрос, а второй отвечает за общий (конечный) результат
Но (как всегда ), есть бага на нескольких серверах после LIMIT и через МуСкул инекцию пытаюсь подобрать количество столбцов, но не получается постоянно вижу пустую страницу. Хотя я уверен что никакой фильтрации нет.
Может это не во всех Мускулах работает? Может есть определенные условия? Посоветуйте!
ПС: может кому-то интересен будет скрипт для подбора количества столбцов по ГЕТ. http://slil.ru/25277209
Скажете зачем создавать новое. А потому что существующие (те которые мне попадались) меня не устраивают по таким причинам - нельзя залить на сервер, и то что хотят вместо меня думать .
пример параметров:
пример роботы в тестовом режиме:
в робочем режиме выводит запрос и результат от севера. А потом через поиск ищу нужную страницу.
2presidentua
попробуй:
SELECT * FROM news WHERE id=1 order by 1 LIMIT 1,1 UNION SELECT 1,2,3,4
будет ошибка неверного использования union и order by в этом вся и фигня, если в запросе используется order by, то инъекция после limit невозможна, если order by нет, то возможна инъекция, на практике чаще всего встречается первый вариант (с order by)
вобщем делай выводы
__________________ Карфаген должен быть разрушен...