Php 分析/标记包含SQL命令的字符串
是否有任何开源库(任何语言,首选python/PHP)可以将ANSI SQL字符串标记化/解析为各种组件 也就是说,如果我有以下字符串Php 分析/标记包含SQL命令的字符串,php,python,sql,parsing,tokenize,Php,Python,Sql,Parsing,Tokenize,是否有任何开源库(任何语言,首选python/PHP)可以将ANSI SQL字符串标记化/解析为各种组件 也就是说,如果我有以下字符串 SELECT a.foo, b.baz, a.bar FROM TABLE_A a LEFT JOIN TABLE_B b ON a.id = b.id WHERE baz = 'snafu'; 我会得到一个数据结构/对象,比如 //fake PHPish $results['select-columns'] = Array[a.foo,b.
SELECT a.foo, b.baz, a.bar
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.id = b.id
WHERE baz = 'snafu';
我会得到一个数据结构/对象,比如
//fake PHPish
$results['select-columns'] = Array[a.foo,b.baz,a.bar];
$results['tables'] = Array[TABLE_A,TABLE_B];
$results['table-aliases'] = Array[a=>TABLE_A, b=>TABLE_B];
//etc...
重申一下,我正在寻找一个数据库包中的代码,该数据库包将SQL命令分离开来,以便引擎知道如何处理它。在互联网上搜索可以找到很多关于如何用SQL解析字符串的结果。那不是我想要的
我意识到我可以浏览一个开源数据库的代码来找到我想要的,但我希望有一些更现成的东西(尽管如果你知道MySQL、PostgreSQL、SQLite源代码中的位置,请随意传递)
谢谢 SQLite源代码有一个名为
parse.y
的文件,其中包含SQL语法。您可以将该文件传递给生成执行语法的C代码 我在源代码中找不到parse.y
文件,介意链接到它吗?