PHPackages                             yonna/database - 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. [Framework](/categories/framework)
4. /
5. yonna/database

ActiveLibrary[Framework](/categories/framework)

yonna/database
==============

database库是yonna强大的DB-ORM

1.0(5y ago)0242MITPHPPHP ~7.4

Since May 15Pushed 5y agoCompare

[ Source](https://github.com/yonna-framework/database)[ Packagist](https://packagist.org/packages/yonna/database)[ RSS](/packages/yonna-database/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (1)Versions (2)Used By (2)

[![License](https://camo.githubusercontent.com/060fbe2e38e4bc1dae7bec2e9d1181a5617483da0e948d9e4ece502af9368456/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f796f6e6e612d6672616d65776f726b2f64617461626173652e737667)](https://packagist.org/packages/yonna/database)[![Repo Size](https://camo.githubusercontent.com/95e8ee640877c5c9e0bc7a337640d8e667d88a5ab540d475e7672d6feb36e0e7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f796f6e6e612d6672616d65776f726b2f64617461626173652e737667)](https://packagist.org/packages/yonna/database)[![Downloads](https://camo.githubusercontent.com/9f6d86f0eb41b3c342ae25283558260243866b06948cb203fa85f275320c8ca9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f796f6e6e612f64617461626173652e737667)](https://packagist.org/packages/yonna/database)[![Version](https://camo.githubusercontent.com/6358b811900321784e65358771deddb30068c47fab676bd91ec49c5fd82af253/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f796f6e6e612d6672616d65776f726b2f64617461626173652e737667)](https://packagist.org/packages/yonna/database)[![Php](https://camo.githubusercontent.com/9c444adbf755cf8ef0dc8ffd85915b1703131a96ee74d576497fbf066f8daa22/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f796f6e6e612f64617461626173652e737667)](https://packagist.org/packages/yonna/database)

Yonna DB - ORM 库
----------------

[](#yonna-db---orm-库)

```
Yonna是一个极其纯净的纯API-PHP框架.
database库是yonna最强大的DB-ORM

```

#### 如何安装

[](#如何安装)

##### 可以通过composer安装：`composer require yonna/database`

[](#可以通过composer安装composer-require-yonnadatabase)

##### 可以通过git下载：`git clone https://github.com/yonna-framework/database.git`

[](#可以通过git下载git-clone-httpsgithubcomyonna-frameworkdatabasegit)

> Yonna demo：[GOTO yonna](https://github.com/yonna-framework/yonna)

### ORM

[](#orm)

> 连贯写法，全解耦，autoload后随意使用
>
> > DB自带各种分析优化，所以不再需要 Model层进行优化，可专心编写你的service(scope)

```
DB::connect() // 默认 'default'
    ->table('system_data')
    ->field('key,value')
    ->in('key', $key)
    ->one();

DB::connect('mysql')
    ->table('system_data')
    ->field('key,value')
    ->in('key', $key）
    ->one();

DB::connect('pgsql')
    ->schemas('default')
    ->table('system_data')
    ->field('key,value')
    ->in('key', $key)
    ->multi();

DB::connect('mssql')
    ->schemas('default')
    ->table('system_data')
    ->field('key,value')
    ->in('key', $key)
    ->page();

DB::connect('sqlite')
    ->table('system_data')
    ->field('key,value')
    ->in('key', $key)
    ->count();

DB::connect('redis')->set('key', 1);
DB::connect('redis')->get('key');
DB::connect('redis')->incr('key');
DB::connect('redis')->decr('key');

DB::connect('redisCo')->set('swoole', 1);
DB::connect('redisCo')->get('swoole');
DB::connect('redisCo')->incr('swoole', 1.5);
DB::connect('redisCo')->decr('swoole', 2);
```

> 终结方法
>
> > one() multi() page() insert() insertAll() delete() count() sum() avg() min() max()

> schemas() / table() 方法会进行一次clear，所以请放在前面

##### 局部闭包（默认）

[](#局部闭包默认)

##### 等于 ( "a" = 1 or "b" = 1 ) and( "c" = 1 or "d" = 1 or "e" = 1 )

[](#等于--a--1-or-b--1--and-c--1-or-d--1-or-e--1-)

```
DB::connect('mysql')
    ->table('demo')
    ->equalTo('a',1)
    ->equalTo('b',1)
    ->closure('or')
    ->equalTo('c',1)
    ->equalTo('d',1)
    ->equalTo('e',1)
    ->closure('or')
    ->one();
```

##### 全局闭包

[](#全局闭包)

##### 等于 (( "a" = 1 or "b" = 1 ) or "c" = 1 or "d" = 1 or "e" = 1 )

[](#等于--a--1-or-b--1--or-c--1-or-d--1-or-e--1-)

```
DB::connect('pgsql')
    ->schemas('default')
    ->table('demo')
    ->equalTo('a',1)
    ->equalTo('b',1)
    ->closure('or')
    ->equalTo('c',1)
    ->equalTo('d',1)
    ->equalTo('e',1)
    ->closure('or',true)
    ->one();
```

##### 插入后可以获取 lastInsertId（在无序列表中自动获取可能会产生严重的错误）

[](#插入后可以获取-lastinsertid在无序列表中自动获取可能会产生严重的错误)

```
try {
    DB::connect('pgsql')->schemas('default')->table('data')->insert(['data' => 1]);
    $lastId = DB::lastInsertId();
} catch (\Exception $e) {
    return $this->error($e->getMessage());
}
```

##### 如果你只是想获取sql而不请求数据库，请使用 fetchSql()

[](#如果你只是想获取sql而不请求数据库请使用-fetchsql)

```
DB::connect()->table('demo')->equalTo('status',1)->fetchSql()->multi();
```

### JSON（pgsql）

[](#jsonpgsql)

#### 搜索例子1

[](#搜索例子1)

```
select * from "default".system_data where (data#>>'{project_name,name}')::text like '%系统%';
```

#### 搜索例子2

[](#搜索例子2)

```
select * from "default".system_data where ("data"->'server_pre_alert_limit'->'value')::text::int > 5;
```

### 前端json搜索语法

[](#前端json搜索语法)

`{project_name,name} % #TT || (({project_name,name} % #系统 || {project_name,name} != #xxx) && {server_pre_alert_limit,value} > #1 && ({server_pre_alert_limit,value} > #0 || {server_pre_alert_limit,value} < #100000000))`

```
[  n   ] isNull
         {?,?,?} n #
[  !n  ] isNotNull
         {?,?,?} !n #
[  %   ] like
         {?,?,?} % #???
[  !%  ] notLike
         {?,?,?} !% #???
[  =   ] equalTo
         {?,?,?} = #???
[  >   ] greaterThan
         {?,?,?} > #???
[  <   ] lessThan
         {?,?,?} < #???
[  >=  ] greaterThanOrEqualTo
         {?,?,?} >= #???
[  < #???,???
[  !>< ] notBetween
         {?,?,?} !>< #???,???
[  *   ] any
         {?,?,?} * #???,???,???...
[  ^   ] in
         {?,?,?} ^ #???,???,???...
[  !^  ] notIn
         {?,?,?} !^ #???,???,???...

```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

2189d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5762f8efcad2698b8cd006b4df42a1dd0f59e2142943b00b78113966ec49db5c?d=identicon)[hunzsig](/maintainers/hunzsig)

---

Top Contributors

[![hunzsig](https://avatars.githubusercontent.com/u/26645632?v=4)](https://github.com/hunzsig "hunzsig (92 commits)")

---

Tags

phpframeworkdatabaseyonna

### Embed Badge

![Health badge](/badges/yonna-database/health.svg)

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

###  Alternatives

[utopia-php/database

A simple library to manage application persistence using multiple database adapters

74327.7k5](/packages/utopia-php-database)

PHPackages © 2026

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