michabbb / php-sql-parser
greenlion/php-sql-parser 的分支 - 一个专注于MySQL方言的纯PHP SQL(非验证)解析器
v4.0.0
2014-04-16 10:03 UTC
Requires
- php: >=5.3.2
Requires (Dev)
- phpunit/phpunit: >=4.0.14
- squizlabs/php_codesniffer: >=1.5.1
This package is auto-updated.
Last update: 2024-09-24 06:06:19 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] => ) ) )