PHPackages                             chengf28/dbquery - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. chengf28/dbquery

ActiveLibrary[Database &amp; ORM](/categories/database)

chengf28/dbquery
================

a Simple Mysql Query Builder

v1.1.1(6y ago)618GPL-3.0PHPPHP &gt;=7.1.0

Since Apr 1Pushed 6y agoCompare

[ Source](https://github.com/chengf28/DBquery)[ Packagist](https://packagist.org/packages/chengf28/dbquery)[ RSS](/packages/chengf28-dbquery/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (5)DependenciesVersions (10)Used By (0)

#### 注意! master或其他分支持续更新中，可能存在bug。请下载 releases 或 composer 安装到您的项目中;

[](#注意-master或其他分支持续更新中可能存在bug请下载-releases-或-composer-安装到您的项目中)

#### Note! The master or branches are constantly being updated and may be buggy. Download releases or install by composer for your project please;

[](#note-the-master-or-branches-are-constantly-being-updated-and-may-be-buggy-download-releases-or-install-by-composer-for-your-project-please)

[DBquery](https://github.com/chengf28/DBquery)
==============================================

[](#dbquery)

简单的MySql查询构造器

A simple Mysql query builder

[BUG反馈及建议](https://github.com/chengf28/DBquery/issues)
------------------------------------------------------

[](#bug反馈及建议)

github issues:

添加 Install
----------

[](#添加-install)

- composer:

直接在项目根目录中执行`composer require chengf28/dbquery` , 即可加载最新版本到本地项目vender/chengf28目录中(如果目录中没有composer.json 会自动生成)

execute `composer require chengf28/dbquery` command in terminal;

或者在项目中的composer.json 添加

or add configure in composer.json

```
{
    "require": {
        "chengf28/dbquery": "~0.2"
    }
}
```

然后执行 `composer update`

the execute `composer update`

- git:

```
git clone https://github.com/chengf28/DBquery.git
```

用法 Usage:
---------

[](#用法-usage)

```
use DBquery\DBquery;
$config = [
    // 预留配置,可不填写,目前仅支持mysql
    'dbtype' => 'MYSQL',
    'host'   => '127.0.0.1',
    'port'   => 3306,
    'dbname' => 'databasesname',
    'user'   => 'root',
    'pswd'   => 'root'

];
DBquery::config($config);

DBquery::table('table_name')->all();
```

配置 Config:
----------

[](#配置-config)

> 此处仅供参数,具体配置内容以实际需求为准; 全局调用一次即可

- 基本配置 Base Configure

```
$config = [
    'dbtype' => 'MYSQL',
    'host'   => '127.0.0.1',
    'port'   => 3306,
    'dbname' => 'databasesname',
    'user'   => 'root',
    'pswd'   => 'root'
];
```

- 读写分离 Reading and writing separation

```
$config = [
    // 预留配置,可不填写,目前仅支持mysql
    'dbtype' => 'MYSQL',

    'read' => [
        'host'   => '127.0.0.1',
        'port'   => 3306,
        'dbname' => 'databasesname',
        'user'   => 'root',
        'pswd'   => 'root'
    ],

    'write' => [
        'host'   => '127.0.0.1',
        'port'   => 3306,
        'dbname' => 'databasesname',
        'user'   => 'root',
        'pswd'   => 'root'
    ],
];
```

- 读写分离,部分配置相同

> 读写分离时 DQL 会直接操作 `read` 库, DML及DDL 会 操作 `wirte` 库 可以使用 useWrite() 及 useRead() 强制操作 `wirte` 或 `read` 库

```
$config = [
    // 预留配置,可不填写,目前仅支持mysql
    'dbtype' => 'MYSQL',
    'read' => [
        'host'   => '127.0.0.1',
        'port'   => 3306,
        'dbname' => 'databasesname',
    ],
    'write' => [
        'host'   => '127.0.0.1',
        'port'   => 3306,
        'dbname' => 'databasesname',
    ],
    // 相同用户名和密码,其他配置相同也可以
    'user'   => 'root',
    'pswd'   => 'root',
];
```

- 多个数据库

只需要再配置数组中添加key `connects` 关键字,然后将多个数据库配置(`索引数组`或者`关联数组`)为值,默认会使用配置的第一个,可以是用`DBquery::connect()`进行数据库操作的切换;如果配置填入的是关联数组,则传入connect()你需要切换的配置的key,如果是索引数组则传入索引位置即可;

```
$config = [
    // 此处主要,一定要放在connects 作为key,值为数组,可以为 索引数组或者关联数组
    'connects' => [
        // 数据库配置,规则和上面的$config一致

        [ // 第一个数据表的配置
            'host'   => '192.168.1.1',

        ],
        [ // 第二个数据表的配置
            'host'   => '192.168.1.2',
            ...
        ]
    ]
]

// 默认使用第一个 即 connects[0] 的配置
DBquery::config($config);
// 切换其他数据库 ,第一个 connects[1]的配置
DBquery::connect(1);

/**
 * 使用关联数组
 */
$config = [
    'connects' => [
        // 和上方配置区别在于,此处使用关联数组
        'db1' => [
            ...
        ],
        'db2' => [
            ...
        ]
    ]
]

// 默认使用第一个 即 connects['db1'] 的配置
DBquery::config($config); // 全局调用一次即可
// 切换其他数据库 ,第一个 connects['db2']的配置
DBquery::connect('db2');
...
// 操作后可以再次切换
DBquery::connect('db1');
...
```

---

配置可选参数
------

[](#配置可选参数)

**默认的数据集格式是PDO::FETCH\_OBJ**即每个row都是一个object对象,可以通过`DBquery::setDataType()`方法来修改获取的数据集类型,可以传入`DBquery::arr`获取`DBquery::obj`来修改数据集类型,也可以传入`PDO::FETCH_*`当然,你可以通过在$config中添加`datatype`在参数配置阶段进行设置;

```
$config = ['db1'=>[
    // 预留配置,可不填写,目前仅支持mysql
    'dbtype' => 'MYSQL',
    'host'   => '127.0.0.1',
    'port'   => 3300,
    'write'  => [
        'dbname' => 'write_db',
    ],
    'read' =>[
        'dbname' => 'read_db',
    ],
    'user'     => 'root',
    'pswd'     => 'root',
    'prefix'   => 'tb_',
    'datatype' => 'array', // 写明 为 array类型,不填写或其他类型字符串默认为object类型, 也可以是`PDO::FETCH_*`或者DBquery::arr 及 DBquery::obj;
],]
// 如果不想修改配置文件,只是临时修改获取的数据类型;
DBquery::config($config);

DBquery::setDataType(DBquery::arr);

DBquery::table('foo')->get(); // 获取数组类型的数据集

DBquery::setDataType(DBquery::obj); // 切换回object类型的数据集格式;
```

---

同样的可以在配置中提前设置表前缀

一般在 `config` array中添加 `prefix` 字段 可以自动设置,但是依旧可以强制重写

```
   $config = [
      // 预留配置,可不填写,目前仅支持mysql
      'dbtype' => 'MYSQL',
      'host'   => '127.0.0.1',
      'port'   => 3306,
      'write'  => [
         'dbname' => 'write_test',
      ],
      'read' =>[
         'dbname' => 'read_test',
      ],
      'user'   => 'root',
      'pswd'   => 'root',
      'prefix' => 'tb_', // 可以在配置文件中添加表前缀
   ];
   DBquery::config($config);
   $db = DBquery::table('user'); // tb_user
   $db->setPrefix('tb2_'); // tb2_user
```

方法 Methods
----------

[](#方法-methods)

[点击查看](https://github.com/chengf28/DBquery/blob/master/DBquery%20Methods%20Document.md)

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Total

8

Last Release

2529d ago

Major Versions

v0.2.3 → v1.0.02019-06-14

PHP version history (2 changes)v0.1PHP &gt;=7.0.0

v0.2.2PHP &gt;=7.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4c9ef325e017862cc35fe17fd965c4b7c3f4e3447257ce90fe7a26cdc64b23f5?d=identicon)[天才纸尿裤](/maintainers/%E5%A4%A9%E6%89%8D%E7%BA%B8%E5%B0%BF%E8%A3%A4)

---

Top Contributors

[![chengf28](https://avatars.githubusercontent.com/u/26535856?v=4)](https://github.com/chengf28 "chengf28 (118 commits)")

---

Tags

dbquerymysqlphp7query-builder

### Embed Badge

![Health badge](/badges/chengf28-dbquery/health.svg)

```
[![Health](https://phpackages.com/badges/chengf28-dbquery/health.svg)](https://phpackages.com/packages/chengf28-dbquery)
```

###  Alternatives

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k117.2M117](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8351.6M87](/packages/propel-propel1)[jfelder/oracledb

Oracle DB driver for Laravel

11518.4k](/packages/jfelder-oracledb)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
