适用于所有主要数据库的查询构建器?

时间:2012-05-11 13:03:21

标签: php mysql sql oracle

我需要使用一个生成包含占位符的SQL语句的查询构建器。

它应该:

  • 生成包含占位符的SQL语句(:placeHolder或?)
  • 对象映射
  • 以字符串或类似方式返回查询
  • 使用所有主要数据库(例如Oracle,MySQL)

我正在考虑这样的事情:

QueryBuilder::select(
    'db' => 'MySQL'
    'from' => 'users',
    'fields' => array(
         'user_id' => 'id'
    ),
    'where' => array(
        'AND' => array(
             /**
              * ...conditions...
              */
        )
    ),
    'ljoin' => array(
        'Group' => array(
            'from' => 'groups'
             /**
              * ...stuff...
              */
        )
    )
);

我查看了Doctrine2,但它需要对象映射。并且有很多初始配置。 我查看了Doctrine2 DBAL,它没有处理INSERT查询。

注意:查询在开发阶段生成,并保存为每个受支持的数据库引擎的纯文本。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试使用Doctrine 2 ORM查询构建器非常通用,并且可以在http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html更多地使用大多数DBMS系统

答案 1 :(得分:0)

一个例子是Codeigniter Active Record,您可以构建如下的查询:

$this->db->select('field_one, field_two')
    ->from('mytable')
    ->where(array('field' => 'value', 'field' => 'value'))