A simple parser to split SQL (and/or DDL) files into individual SQL queries and strip comments.
composer require kodus/sql-split
I designed this for use with PDO and MySQL/PostgreSQL statements.
It uses a very simple recursive descent parser to minimally tokenize valid SQL - this approach ensures there is no ambiguity between quoted strings, keywords, comments, etc. but makes no attempt to validate SQL command structure or validity of the extracted statements.
It supports the following SQL/DDL features:
- SQL and DDL Queries
- Stored procedures, functions, views, triggers, etc.
- PostgreSQL dollar-tags (
$$
and$mytag$
delimiters) - The MySQL
DELIMITER
command
Just this:
$statements = Splitter::split(file_get_contents(...));
This will split to individual SQL statements and (by default) strip comments.
Then just loop over your $statements
and run them via PDO
.
That's all.