greenlion / php-sql-parser
一个专注于MySQL方言的纯PHP SQL(非验证)解析器
v4.6.0
2023-03-09 20:54 UTC
Requires
- php: >=5.3.2
Requires (Dev)
- analog/analog: ^1.0.6
- phpunit/phpunit: ^9.5.13
- squizlabs/php_codesniffer: ^1.5.1
This package is not auto-updated.
Last update: 2024-09-09 20:31:22 UTC
README
PHP-SQL-Parser
一个专注于MySQL方言的纯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] => ) ) )