A simple facility to split SQL files into individual queries - supports MySQL and PostgreSQL
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 (
- The MySQL
$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