PARSE PREG SQL

 
0
 
PHP
ava
Sanchezzz | 20.03.2013, 17:43
Задача есть sql запрос Select я его хочу распарить на составляющие а именно меня интересует секция запроса select (.*)  from  (.*) where
Знаю что есть монстро библиотека  PHP SQL Parse которое (Юмор: делает то что мне нужно)

Но она громоздкая посему вынужден от нее отказаться .

Прощу помощи в регулярке

// Для теста
$sql = "SELECT articles.*, formats.format_title
FROM articles
INNER JOIN formats ON articles.article_format_id = formats.format_id
INNER JOIN article_categories ON articles.article_id = article_categories.article_id
WHERE article_categories.category_id = 2
ORDER BY articles.article_date DESC";

preg_match('/^\s*'.
'SELECT\s+(?P<select_rows>.*[^\s])'.
'\s+FROM\s+(?P<from>.*[^\s])'.
'(?:\s+WHERE\s+(?P<where>.*[^\s]))?'.
'(.*)$/is',$sql,$mather);

pre($mather);

Как сделать так что бы Where был не обязательным, ведь запрос может быть выполнен и без WHERE

Посути меня интересует только список таблиц для того что потом обратится к схеме и получить поля таблицы и построить AR  на основе SQL запроса и результата.


Где то читал, что можно explain  запрос прогнать и оттуда таблицы выдрать, но мне этот вариант как не очень показался.
Kommentare (1)
ava
Sanchezzz | 23.03.2013, 20:38 #
Как оказалось бесполезная затея, вопрос закрыт. 
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden