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

  • Автор темы Автор темы yurnik
  • Дата начала Дата начала

yurnik

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

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

все это нужно для реализации прозрачного шифрования...
 
с простым запросом к одной таблице справился
PHP:
^SELECT (.+?) FROM (.+?)(?: WHERE (.+?))?(?: ORDER BY (.+?))?(?: limit .*)?$

но при запросе вида
PHP:
... from table1 t1 join table2 t2 on (t1.field1=t2.field2).....

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