Jest sobie parser plikow SQL dla PostgreSQL. Ze wzgledow kosmetycznych, pasowaloby oczyscic go z komentarzy wieloliniowych.
Przykladowy plik SQL:
INSERT INTO something VALUES (blabla, blabla); CREATE TABLE something ( bnkjffhgkjdfhgjkhfdg fhgfdhg(10) NOT NULL dhfkjhdskjhdgdhg ); --comment comment --comment comment /* some more comment smore more more */ CREATE TABLE films ( code char(5), title varchar(40), did integer, date_prod date, kind varchar(10), len interval hour TO minute, CONSTRAINT production UNIQUE(date_prod) );
Parser mieli plik i wrzuca zapytania SQL do zmiennej $sQuery. Aby oczyscic z komentarza wielonilionwego jade:
$sQuery = preg_replace(';(/\*)[\s\S]*(\*/);', '', $sQuery);
I wszystko dziala pieknie.
Jednak gdy plik SQL posiada drugi komentarz:
INSERT INTO something VALUES (blabla, blabla); CREATE TABLE something ( bnkjffhgkjdfhgjkhfdg fhgfdhg(10) NOT NULL dhfkjhdskjhdgdhg ); --comment comment --comment comment /* some more comment smore more more */ CREATE TABLE films ( code char(5), title varchar(40), did integer, date_prod date, kind varchar(10), len interval hour TO minute, CONSTRAINT production UNIQUE(date_prod) ); /* some more mmhhhgjh comment smore more more */
Po wyechowaniu:
<?php ?>
Widac jedynie:
INSERT INTO something VALUES (blabla, blabla); CREATE TABLE something ( bnkjffhgkjdfhgjkhfdg fhgfdhg(10) not null dhfkjhdskjhdgdhg );
Czy ktos moze mi wytknac moj przedszkolny blad? Chyba wypitych juz 5 kaw nie pozwala mi sie skupic.