rob-lester-jr04 / php-sql-parser
一个专注于MySQL SQL方言的纯PHP SQL(非验证)解析器 - 为使用composer实践和Laravel 5+进行了现代化
v4.4.0
2021-03-28 23:13 UTC
Requires
- php: >=5.3.2
Requires (Dev)
- analog/analog: ^1.0.6
- phpunit/phpunit: ^4.0.14
- squizlabs/php_codesniffer: ^1.5.1
This package is auto-updated.
Last update: 2024-09-07 22:05:10 UTC
README
PHP-SQL-Parser
一个专注于MySQL SQL方言的纯PHP SQL(非验证)解析器
下载
以下语句类型对MySQL方言提供了全面支持
SELECT
INSERT
UPDATE
DELETE
REPLACE
RENAME
SHOW
SET
DROP
CREATE INDEX
CREATE TABLE
EXPLAIN
DESCRIBE
其他SQL语句类型
其他语句以标记数组的形式返回。这不如上述类型的结构化。有关更多信息,请参阅解析器手册。
其他SQL方言
由于MySQL SQL方言非常接近SQL-92,因此这应该适用于大多数需要SQL解析器的数据库应用。如果使用其他数据库方言,则可能需要更改保留字 - 请参阅解析器手册。它支持UNION、子查询和复合语句。
外部依赖
解析器是一个自包含的类。它没有外部依赖。解析器使用少量正则表达式。
重点
解析器的重点是完整和准确地支持MySQL SQL方言。重点不在于优化性能。预期您将提供语法有效的查询。
手册
解析器手册 - 查看手册。
示例输出
示例查询
SELECT STRAIGHT_JOIN a, b, c FROM some_table an_alias WHERE d > 5;
示例输出(通过print_r)
Array ( [OPTIONS] => Array ( [0] => STRAIGHT_JOIN ) [SELECT] => Array ( [0] => Array ( [expr_type] => colref [base_expr] => a [sub_tree] => [alias] => `a` ) [1] => Array ( [expr_type] => colref [base_expr] => b [sub_tree] => [alias] => `b` ) [2] => Array ( [expr_type] => colref [base_expr] => c [sub_tree] => [alias] => `c` ) ) [FROM] => Array ( [0] => Array ( [table] => some_table [alias] => an_alias [join_type] => JOIN [ref_type] => [ref_clause] => [base_expr] => [sub_tree] => ) ) [WHERE] => Array ( [0] => Array ( [expr_type] => colref [base_expr] => d [sub_tree] => ) [1] => Array ( [expr_type] => operator [base_expr] => > [sub_tree] => ) [2] => Array ( [expr_type] => const [base_expr] => 5 [sub_tree] => ) ) )