szonov / sql-splitter
Library for parsing strings with multiple sql queries and split it to single queries
Installs: 28 744
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=8.1.0
- szonov/text-parser: ^2.0
- szonov/text-source: ^1.0
This package is auto-updated.
Last update: 2025-01-14 13:20:51 UTC
README
Library for parsing strings with multiple sql queries and split it to single queries
For now supported:
- Mysql (can be used for sqlite)
- Postgresql
Usage Example :: full (from string)
include "vendor/autoload.php"; use SZonov\Text\Source\Text as Input; use SZonov\SQL\Splitter\Postgresql as Parser; use SZonov\Text\Parser\ParserIterator as Queries; $sql = "CREATE TABLE a (id SERIAL PRIMARY KEY, val TEXT);" . "INSERT INTO a (val) VALUES ('myval');"; $input = new Input($sql); $parser = new Parser($input); $queries = new Queries($parser); foreach ($queries as $query) { // make something useful with single query echo "[" . $query . "]\n"; }
Usage Example :: short (from file)
include "vendor/autoload.php"; use SZonov\SQL\Splitter\Postgresql as Parser; use SZonov\Text\Parser\ParserIterator as Queries; $queries = new Queries(Parser::fromFile('test.sql')); foreach ($queries as $query) { // make something useful with single query echo "[" . $query . "]\n"; }
Usage Example :: V2+ syntax
include "vendor/autoload.php"; use SZonov\SQL\Splitter\Parser; //$queries = Parser::fromFileUsingDriver('test.sql', 'mysql')->queries(); $queries = Parser::fromFileUsingDriver('test.sql', 'pgsql')->queries(); foreach ($queries as $query) { // make something useful with single query echo "[" . $query . "]\n"; }