asika/sql-splitter

This is a class that can split BIG SQL file or string as iterator so that can help us save memory when importing SQL to database.

Maintainers

👁 asika32764

Package info

github.com/asika32764/sql-splitter

pkg:composer/asika/sql-splitter

Statistics

Installs: 5 713

Dependents: 4

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2020-01-09 04:11 UTC

Requires

  • php: >=7.0

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT 25391ea98c6896dcf52349cd425ac87745514e8e

  • Simon Asika <asika32764.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-11 14:09:34 UTC


README

This is a class that can split BIG SQL file or string as iterator so that can help us save memory when importing SQL to database.

Install

composer require asika/sql-splitter

Usage

use Asika\SqlSplitter\SqlSplitter;

$it = SqlSplitter::splitFromFile(__DIR__ . '/path/to/db.sql');

// Loop iterator
foreach ($it as $query) {
 if (trim($query) !== '') {
 $db->prepare($query)->execute();
 }
}

// Or just convert to array
$queries = iterator_to_array($it);

// Available methods
SqlSplitter::splitSqlString('...');
SqlSplitter::splitFromFile('path/to/fil.sql');
SqlSplitter::splitFromPsr7Stream(new Stream('zip://file.zip#backup.sql'));
SqlSplitter::splitFromStream(fopen('s3://...', 'r'));

To use PSR-7 Stream, you must install psr/http-message