Parse SQL mit preg_match

yellowpixel

Grünschnabel
Hallo Zusammen

Ich versuche eine SQL Abfrage in die einzelnen Bestandteile zu zerlegen und möchte diese gerne in einem Array haben.

zum Beispiel
SQL:
select spalte1, spalte2
from tabelle 1
where spalte1 = 'test'
order by spalte 1
limit 0,10

PHP:
array(
[0] => 'select spalte1, spalte2',
[1] => 'from tabelle1',
[2] => 'where spalte1 = "test"',
[3] => 'order by spalte 1',
[4] => 'limit 0,10'
)

leider krieg ich das irgendwie nicht hin. Mein Anfang funktioniert nur, wenn das Query eine where Bedingung hat:
Code:
/select ([^from]*).*from(.*(?=where|group|order|limit)).*where(.*(?=group|order|limit)).*/

Hat jemand mehr Ahnung von Regex als ich und kann mir weiterhelfen?
Danke
 
Zuletzt bearbeitet von einem Moderator:
Man kriegt es mit Sicherheit schlanker hin, kommt aber auf den Anwendungsfall an, ob das Sinn macht. Der Parser ist sicherlich zuverlässiger.
 

Neue Beiträge

Zurück