szonov / sql-splitter
一个用于解析包含多个 SQL 查询的字符串并将其拆分为单个查询的库
v2.0.0
2022-10-14 08:02 UTC
Requires
- php: >=8.1.0
- szonov/text-parser: ^2.0
- szonov/text-source: ^1.0
This package is auto-updated.
Last update: 2024-09-14 12:39:32 UTC
README
一个用于解析包含多个 SQL 查询的字符串并将其拆分为单个查询的库
目前支持
- Mysql(可用于 sqlite)
- Postgresql
使用示例 :: 完整示例(来自字符串)
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"; }
使用示例 :: 简略示例(来自文件)
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"; }
使用示例 :: V2+ 语法
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"; }