A simple parser to split SQL (and/or DDL) files into individual SQL queries.
This is an unofficial PHP port of SQL-Statement-Parser by TeamSQL.
composer require kodus/sql-splitter
Supported SQL File Formats:
- MySQL
- PostgreSQL
- Microsoft SQL Server
Specifically with support for the following SQL/DDL features:
- SQL and DDL Queries
- Stored procedures, functions, views, etc.
- PostgreSQL's dollar-tags (e.g.
$$
and$mytag$
, etc.) - MySQL's
DELIMITER
Pick one of the platform-specific methods:
$statements = SQLSplitter::splitMySQL(file_get_contents(...));
$statements = SQLSplitter::splitMSSQL(file_get_contents(...));
$statements = SQLSplitter::splitPostgreSQL(file_get_contents(...));
Or dynamically pick one based on the PDO driver-name:
$driver = $pdo->getAttribute(PDO::ATTR_DRIVER_NAME);
$statements = SQLSplitter::split($driver, file_get_contents(...));
Driver-names are also available as SQLSplitter
class-constants, e.g. DB_MYSQL
, DB_MSSQL
and DB_PGSQL
.