Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是一个好的查询生成器,可以在PHP5.3上解析和重建SQL查询?_Php_Sql_Php 5.3_Query Builder - Fatal编程技术网

什么是一个好的查询生成器,可以在PHP5.3上解析和重建SQL查询?

什么是一个好的查询生成器,可以在PHP5.3上解析和重建SQL查询?,php,sql,php-5.3,query-builder,Php,Sql,Php 5.3,Query Builder,我不要ORM。我很习惯于自己编写目标明确且经过优化的查询,我不希望任何形式的ORM使我的代码膨胀 我正在寻找一个轻量级的、面向对象的查询解析器和生成器,它可以将现有的SQL字符串转换为可扩展的查询构建对象,以便在重新编译和在数据库上执行之前进行进一步操作 用例本身正在更新对公共模式中的表执行的查询,这些表包含来自审核模式的替换表的当前有效信息,同时在WHERE子句中添加谓词以表示来自(新替换的)有效时间状态表的时间点数据 我的另一个用例是在执行之前操纵预先编写的查询以提供额外的过滤器 解析器/构

我不要ORM。我很习惯于自己编写目标明确且经过优化的查询,我不希望任何形式的ORM使我的代码膨胀

我正在寻找一个轻量级的、面向对象的查询解析器和生成器,它可以将现有的SQL字符串转换为可扩展的查询构建对象,以便在重新编译和在数据库上执行之前进行进一步操作

用例本身正在更新对公共模式中的表执行的查询,这些表包含来自审核模式的替换表的当前有效信息,同时在WHERE子句中添加谓词以表示来自(新替换的)有效时间状态表的时间点数据

我的另一个用例是在执行之前操纵预先编写的查询以提供额外的过滤器


解析器/构建器允许我编写当前有效的查询,但可以轻松地将它们转换为等效的时间点。我目前正在计划对重建部分的《突袭条令2》的
QueryBuilder
。有人知道有一个优秀的库可以将SQL查询解析到它们的基本组件中吗?

这个库看起来不错(我没有使用过),但它不是PHP——您可以使用exec()从PHP调用Java one服务器端,并可能将其应用到您的脚本中


我还以为我在那里读了一本科幻小说呢。请注意:ORM的目的并不是为了让您省去处理SQL的工作,而是为了提供一个适配器来帮助您的基于对象的应用程序以一种理智、清晰的方式处理关系数据集。使用它通常需要做很多额外的工作,但是它可以在避免错误和保持敏捷方面节省你的时间,特别是当它支持不同的数据库和引擎而不需要你做额外的工作时。Coreyward,这没什么错。事实是,抽象是无用的,因为该应用程序是针对PostgreSQL的(我很高兴)。当我处理RDBMS时,我的应用程序不需要关系代码。这种逻辑的绝大多数留给DB。我只需要负责编写格式良好的交易,这不是凭空想象的火箭科学。简而言之,使用ORM没有多大价值。事实上,如果没有一个,我的工作速度要快得多(更不用说调试的东西更少了)。可悲的是,我没有空间对性能大喊大叫……如果有人还没有这样做的话,很有可能有一个perl CPAN模块可以移植到PHP。