PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` parsed); echo "parse time simplest query:" . ($stop - $start) . "\n"; /*You can use the constuctor for parsing. The parsed statement is stored at the ->parsed property.*/ $sql = 'REPLACE INTO table (a,b,c) VALUES (1,2,3)'; echo $sql . "\n"; $start = microtime(true); $parser = new PHPSQLParser($sql); $stop = microtime(true); print_r($parser->parsed); echo "parse time very somewhat simple statement:" . ($stop - $start) . "\n"; /* You can use the ->parse() method too. The parsed structure is returned, and also available in the ->parsed property. */ $sql = 'SELECT a,b,c from some_table an_alias where d > 5;'; echo $sql . "\n"; print_r($parser->parse($sql, true)); $sql = 'SELECT a,b,c from some_table an_alias join `another` as `another table` using(id) where d > 5;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql, true); print_r($parser->parsed); $sql = 'SELECT a,b,c from some_table an_alias join (select d, max(f) max_f from some_table where id = 37 group by d) `subqry` on subqry.d = an_alias.d where d > 5;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = "(select `c2`, `c```, \"quoted \'string\' \\\" with `embedded`\\\"\\\" quotes\" as `an``alias` from table table) UNION ALL (select `c2`, `c```, \"quoted \'string\' \\\" with `embedded`\\\"\\\" quotes\" as `an``alias` from table table)"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = "(select `c2`, `c```, \"quoted \'string\' \\\" with `embedded`\\\"\\\" quotes\" as `an``alias` from table table) UNION (select `c2`, `c```, \"quoted \'string\' \\\" with `embedded`\\\"\\\" quotes\" as `an``alias` from table table)"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = "select `c2`, `c```, \"quoted \'string\' \\\" with `embedded`\\\"\\\" quotes\" as `an``alias` from table table"; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = "alter table xyz add key my_key(a,b,c), drop primay key"; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'UPDATE t1 SET col1 = col1 + 1, col2 = col1;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'delete low_priority partitioned_table.* from partitioned_table where partition_id = 1;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = "UPDATE t1 SET col1 = col1 + 1, col2 = col1;"; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'insert into partitioned_table (partition_id, some_col) values (1,2);'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'delete from partitioned_table where partition_id = 1;'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'SELECT 1'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'SHOW TABLE STATUS'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'SHOW TABLES'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'select DISTINCT 1+2 c1, 1+ 2 as `c2`, sum(c2),"Status" = CASE WHEN quantity > 0 THEN \'in stock\' ELSE \'out of stock\' END , t4.c1, (select c1+c2 from t1 inner_t1 limit 1) as subquery into @a1, @a2, @a3 from t1 the_t1 left outer join t2 using(c1,c2) join t3 as tX on tX.c1 = the_t1.c1 natural join t4 t4_x using(cX) where c1 = 1 and c2 in (1,2,3, "apple") and exists ( select 1 from some_other_table another_table where x > 1) and ("zebra" = "orange" or 1 = 1) group by 1, 2 having sum(c2) > 1 ORDER BY 2, c1 DESC LIMIT 0, 10 into outfile "/xyz" FOR UPDATE LOCK IN SHARE MODE'; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = "(select 1, 1, 1, 1 from dual dual1) union all (select 2, 2, 2, 2 from dual dual2) union all (select c1,c2,c3,sum(c4) from (select c1,c2,c3,c4 from a_table where c2 = 1) subquery group by 1,2,3) limit 10"; echo $sql . "\n"; $parser = new PHPSQLParser($sql); print_r($parser->parsed); $sql = 'select DISTINCT 1+2 c1, 1+ 2 as `c2`, sum(c2),"Status" = CASE WHEN quantity > 0 THEN "in stock" ELSE "out of stock" END , t4.c1, (select c1+c2 from t1 table limit 1) as subquery into @a1, @a2, @a3 from `table` the_t1 left outer join t2 using(c1,c2) join (select a, b, length(concat(a,b,c)) from ( select 1 a,2 b,3 c from some_Table ) table ) subquery_in_from join t3 as tX on tX.c1 = the_t1.c1 natural join t4 t4_x using(cX) where c1 = 1 and c2 in (1,2,3, "apple") and exists ( select 1 from some_other_table another_table where x > 1) and ("zebra" = "orange" or 1 = 1) group by 1, 2 having sum(c2) > 1 ORDER BY 2, c1 DESC LIMIT 0, 10 into outfile "/xyz" FOR UPDATE LOCK IN SHARE MODE UNION ALL SELECT NULL,NULL,NULL,NULL,NULL FROM DUAL LIMIT 1'; $start = microtime(true); $parser = new PHPSQLParser($sql); $stop = microtime(true); echo "Parse time highly complex statement: " . ($stop - $start) . "\n"; ?>