Hallo zusammen,
ich bin gerade am verzweifeln!
Ich versuche gerade eine MySQL Select anweisung mittels preg_match in seine Bestandteile zu splitten.
D.H., ich möchte jeden Teil (Select bis From, From bis Where, Where bis Group, usw. ) einzeln in einem Array speichern.
Folgendes habe ichschon versucht
Das funktioniert auch fast, solange alles vorhanden ist. Da aber alles ab dem Where optional in der SQL Anweisung ist, sollte das splitten auch funktionieren, wenn nicht alle Teile vorhanden sind. Fehlt ein Argument, wird ein leeres Array ausgegeben.
Klasse wäre es, wenn das Array im Eneffekt folgendermaßen aussehen könnte:
und so weiter und so fort.
Gruß Schrodi
ich bin gerade am verzweifeln!
Ich versuche gerade eine MySQL Select anweisung mittels preg_match in seine Bestandteile zu splitten.
Code:
SELECT
[rechenoperation|funktionsauswahl]
spaltenname
FROM tabelle
[WHERE bedinungen]
[GROUP BY spalten]
[HAVING aggregatfunktionen]
[ORDER BY spalte [ASC] [DESC]
[LIMIT [Anfang][Zeilenanzahl]]
D.H., ich möchte jeden Teil (Select bis From, From bis Where, Where bis Group, usw. ) einzeln in einem Array speichern.
Folgendes habe ichschon versucht
PHP:
$pattern="/(select)(.*)(from)(.*)(where)(.*)(group by)(.*) usw. /";
preg_match($pattern, strtolower($this->SQL), $this->splitSQL);
Das funktioniert auch fast, solange alles vorhanden ist. Da aber alles ab dem Where optional in der SQL Anweisung ist, sollte das splitten auch funktionieren, wenn nicht alle Teile vorhanden sind. Fehlt ein Argument, wird ein leeres Array ausgegeben.
Klasse wäre es, wenn das Array im Eneffekt folgendermaßen aussehen könnte:
PHP:
$splitSQL[0] = Select spalte1, spalte2
$splitSQL[1] = From tab 1 Left Join ....
$splitSQL[2] = Where ....
und so weiter und so fort.
Gruß Schrodi