| 
<?php
 /**
 * you cannot execute this script within Eclipse PHP
 * because of the limited output buffer. Try to run it
 * directly within a shell.
 */
 
 namespace PHPSQLParser;
 require_once dirname(__FILE__) . '/../vendor/autoload.php';
 
 $sql = 'SELECT 1';
 echo $sql . "\n";
 $start = microtime(true);
 $parser = new PHPSQLParser($sql, true);
 $stop = microtime(true);
 print_r($parser->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";
 
 ?>
 
 |