парсер sql запроса

yurnik

Новичок
Доброго времени суток, может у кого-то есть готовая регулярка для парсинга sql запроса

мне нужно получить то что после select, from и where причем where может и не быть а в from нужно учесть что может быть еще и join.
т.е. другими словами мне нужно получить имена таблиц и названия полей в выборе и условии

все это нужно для реализации прозрачного шифрования...
 

yurnik

Новичок
с простым запросом к одной таблице справился
PHP:
^SELECT (.+?) FROM (.+?)(?: WHERE (.+?))?(?: ORDER BY (.+?))?(?: limit .*)?$
но при запросе вида
PHP:
... from table1 t1 join table2 t2 on (t1.field1=t2.field2).....
не совсем получается распарсить несколько таблиц....
т.е. там ведь может быть join а может быть и запятая...
 

HEm

Сетевой бобер
А может случиться и слово в содержании. Если например это поисковый запрос и в строке поиска написали 'order by'
 

yurnik

Новичок
да уж, понял что одними регулярками не обойтись, взял парсер из PHPmyAdmin и подкручиваю его под свои нужды
 
Сверху