kodus/sql-splitter

A simple facility to split SQL files into individual queries - supports MySQL, PostgreSQL and Microsoft SQL Server

dev-php-port 2017-05-19 10:28 UTC

README

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.

PHP Version Build Status

Install via Composer

composer require kodus/sql-splitter

Features

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

Usage

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.