我真的找到了你想要的:
SQL Parser: Parse SQL files and extract query statements (( 通过 phpclasses.org ))
示例 sql 文件
#这是一条评论 :)
select * from table1 where a=1;
--select 评论 2
选择 * 从
表2
其中a=2;
#插入值
将忽略插入`versions`(`release`,`revision`,`name`,`lastupdate`)值('1','0','sqlparser',now());
#创建表
创建表`测试`(
`id` int(11) unsigned not null auto_increment,
`name` varchar(80) not null default '',
主键(`id`)
) 引擎=innodb 默认字符集=utf8;
#海关操作
插入`tests`(`id`,`name`) 值('1','test ; value');
update `test` set `name`='test value update' where `id`='1';
输出:
大批 (
0 => 'SELECT * FROM table1 WHERE a=1',
1 => 'SELECT * FROM table2 where a=2',
2 => 'INSERT IGNORE INTO `VERSIONS`(`release`,`revision`,`name`,`lastUpdate`) 值 (\'1\',\'0\',\'SqlParser\',NOW() )',
3 => 'CREATE TABLE `TESTS` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT, `Name` varchar(80) NOT NULL DEFAULT \'\', PRIMARY KEY (`Id`)) ENGINE=InnoDB 默认字符集=utf8',
4 => 'INSERT INTO `TESTS`(`Id`,`Name`) VALUES (\'1\',\'test ; value\')',
5 => 'UPDATE `TEST` SET `Name`=\'测试值更新\' WHERE `Id`=\'1\'',
)
这个类真正美妙的一点是它可以计算很多东西,比如 cmets、多行和他的值包括“;”的查询字符。