//change $index and run
 
require_once "QuickMySQLLexer.php";
 
$queries=<<<XXX
 
SELECT FOUND_ROWS();
 
    select "\"",'\'',"'",'"',5;
 
SELECT * FROM data WHERE ID=-1 UNION ALL SELECT 1,2,group_concat(select * from users where id=1),user() -- ;
 
SELECT * FROM wp_zotpress_images WHERE citation_id='-1' AND 1=IF(2>1,BENCHMARK(5000000,MD5(CHAR(115,113,108,109,97,112))),0) #';
 
SELECT COUNT(*) AS Result
 
FROM 
 
    rbac_userroles AS TUrel 
 
 
 
    JOIN rbac_roles AS TRdirect ON (TRdirect.ID=TUrel.RoleID)
 
    JOIN rbac_roles AS TR ON ( TR.Lft BETWEEN TRdirect.Lft AND TRdirect.Rght)
 
    /* we join direct roles with indirect roles to have all descendants of direct roles */
 
    JOIN
 
    (    rbac_permissions AS TPdirect
 
    JOIN rbac_permissions AS TP ON ( TPdirect.Lft BETWEEN TP.Lft AND TP.Rght)
 
    /* direct and indirect permissions */
 
    JOIN rbac_rolepermissions AS TRel ON (TP.ID=TRel.PermissionID)
 
    /* joined with role/permissions on roles that are in relation with these permissions*/
 
    ) ON ( TR.ID = TRel.RoleID)
 
    WHERE
 
    /* TU.ID=? */
 
    TUrel.UserID=?
 
    AND
 
    TPdirect.ID=?;
 
select/**/1--d
 
,2#comment
 
,'abc'//comment
 
/**/,4/* hello */,5/* there*/;
 
select /* good comment*/ hasan/**/, 1-- hello world
 
,1# good comment
 
limit 1//last comment;
 
SELECT `t.name`,hasan/*,1,"#ab>! , 'aa'aasd'''c",3,'123""<>!082ujf=*'*/ FROM users where 1>>1> and "5*/">5 and 1!=5 -- or 1=1
 
or #hello there
 
5>4;
 
SELECT option_name, option_value FROM wp38_options WHERE autoload = 'yes';
 
SELECT autoload FROM wp38_options WHERE option_name = '_transient_timeout_doing_cron';
 
SELECT option_value FROM wp38_options WHERE option_name = '_transient_doing_cron' LIMIT 1;
 
INSERT INTO `wp38_options` (`option_name`, `option_value`, `autoload`) VALUES ('_transient_doing_cron', '1427297849.1591129302978515625000', 'yes') ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`);
 
SELECT t.*, tt.* FROM wp38_terms AS t INNER JOIN wp38_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = 'post_tag' AND t.name = 'featured' LIMIT 1;
 
SELECT SQL_CALC_FOUND_ROWS  wp38_posts.ID FROM wp38_posts  WHERE 1=1  AND wp38_posts.post_type = 'post' AND (wp38_posts.post_status = 'publish')  ORDER BY wp38_posts.post_date DESC LIMIT 0, 10;
 
SELECT wp38_posts.* FROM wp38_posts WHERE ID IN (978,963,933,920,859,838,801,795,790,757);
 
SELECT t.*, tt.*, tr.object_id FROM wp38_terms AS t INNER JOIN wp38_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp38_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') AND tr.object_id IN (757, 790, 795, 801, 838, 859, 920, 933, 963, 978*3) ORDER BY t.name ASC;
 
SELECT post_id, meta_key, meta_value FROM wp38_postmeta WHERE post_id IN (757,790,795,801,838,859,920,933,963,978) ORDER BY meta_id ASC;
 
SELECT option_value FROM wp38_options WHERE option_name = 'theme_mods_twentyfourteen' LIMIT 1;
 
SELECT option_value FROM wp38_options WHERE option_name = 'current_theme' LIMIT 1;
 
SELECT * FROM wp38_posts  WHERE (post_type = 'page' AND post_status = 'publish')     ORDER BY menu_order,wp38_posts.post_title ASC;
 
SELECT t.*, tt.* FROM wp38_terms AS t INNER JOIN wp38_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = 'post_tag' AND t.name = 'featured' LIMIT 1;
 
SELECT * FROM wp38_users WHERE ID = '2';
 
SELECT   wp38_posts.ID FROM wp38_posts  WHERE 1=1  AND wp38_posts.post_type = 'post' AND (wp38_posts.post_status = 'publish')  ORDER BY wp38_posts.post_date DESC LIMIT 0, 5;
 
SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp38_posts  WHERE post_type = 'post' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC ;
 
XXX;
 
    $queries=explode(";",$queries);
 
    $index=0; //change this to try different queries
 
    $query=$queries[$index];
 
    $q=new QuickMySQLLexer();
 
    $tokens=$q->lex($query);
 
    $mark=$query;//str_repeat(" ",strlen($query));
 
    echo "Query:",PHP_EOL,PHP_EOL;
 
    echo $q->query(),PHP_EOL;
 
    echo str_repeat("-",strlen($query)),PHP_EOL;
 
    echo "Markings:",PHP_EOL,PHP_EOL;
 
    echo $q->markings(),PHP_EOL;
 
    echo str_repeat("-",strlen($query)),PHP_EOL;
 
    echo "Clean Query:",PHP_EOL,PHP_EOL;
 
    echo $q->clean(),PHP_EOL;
 
    echo str_repeat("-",strlen($query)),PHP_EOL;
 
    echo "Clean Markings:",PHP_EOL,PHP_EOL;
 
    echo $q->cleanMarkings(),PHP_EOL;
 
    echo str_repeat("-",strlen($query)),PHP_EOL;
 
    echo "Structure:",PHP_EOL,PHP_EOL;
 
    echo $q->structure(),PHP_EOL;
 
 |