Доброго времени суток. Если в запросе фильтруются точки, то можно как-нибудь обратится к "INFORMATION_SCHEMA.TABLES"? Если ответ положительный, то как?
[COLOR="#000000"][COLOR="#0000BB"]SELECT table_name FROM tables WHERE table_schema[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'information_schema'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]SELECT table_name FROM information_schema[/COLOR][COLOR="#FF8000"]/*!.*/[/COLOR][COLOR="#0000BB"]tables[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
[COLOR="#000000"][COLOR="#0000BB"]SELECT table_name FROM tables WHERE table_schema[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'information_schema'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]SELECT table_name FROM information_schema[/COLOR][COLOR="#FF8000"]/*!.*/[/COLOR][COLOR="#0000BB"]tables[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
1. #1046 - No database selected
2. Используется точка. А в моём случае ещё и слеш фильтруется(и амперсанд).
[COLOR="#000000"][COLOR="#0000BB"]SELECT table_name FROM tables WHERE table_schema[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'information_schema'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]SELECT table_name FROM information_schema[/COLOR][COLOR="#FF8000"]/*!.*/[/COLOR][COLOR="#0000BB"]tables[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
wtf??
вы проверяете что пишите?
откуда вы сфантазировали таблицу tables в нынешней базе?
второй запрос это всего лишь обход ваф, а фильтрации могут быть реализованы по разному
верхний не работает и понятно почему. Но почему второй сработал? После декодирования получается ведь information_schema%.tables, что не соответствует синтаксису.
верхний не работает и понятно почему. Но почему второй сработал? После декодирования получается ведь information_schema%.tables
, что не соответствует синтаксису.
Если не ошибаюсь, подобная техника обхода, в данном случае фильтра на точку, называется Double Encoding. Еще варианты: