PHPackages                             yangweijie/think-orm-dm - 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. yangweijie/think-orm-dm

ActiveLibrary

yangweijie/think-orm-dm
=======================

dm database for think-orm

v2.0.3(1y ago)1048↓100%1Apache-2.0PHP

Since Jul 12Pushed 1y ago1 watchersCompare

[ Source](https://github.com/yangweijie/think-orm-dm)[ Packagist](https://packagist.org/packages/yangweijie/think-orm-dm)[ RSS](/packages/yangweijie-think-orm-dm/feed)WikiDiscussions main Synced today

READMEChangelog (6)Dependencies (1)Versions (8)Used By (0)

think-orm-dm
============

[](#think-orm-dm)

dm database for ThinkPHP6 think-orm 2.0 3.0 开发中在v 2.0分支

> 达梦数据库对单双引号有着严格的规定，在执行SQL语句的时候，字符串常量应使用单引号括起，关键字、对象名、字段名、别名等则使用双引号括起。而MySQL中则没有严格的规定，在适配过程中MySQL SQL语句中的单双引号严格按照DM的规定修改。

配置
--

[](#配置)

```
TIME_ZONE=(480)
LANGUAGE=(cn)
CHAR_CODE=(PG_UTF8)
KEYWORDS=(user,label)

```

windows 在 `system32` 里 更改后要重启fpm 只重启服务式无效的。不配置CHAR\_CODE php 显示查询数据会gbk乱码，异常也乱码

```
COMPATIBLE_MODE=4
```

兼容性函数
-----

[](#兼容性函数)

`find_in_set` 参见src/db/dm.sql

扩展的安装
-----

[](#扩展的安装)

### win

[](#win)

从 `dmdbms/drivers/php_pdo` 中复制相应版本的 `phpxx_dm.dll` 和 `pdoxx_dm.dll`

到 php ext 目录里 （如果是nts 就复制 `phpxxnts_dm.dll` 和 `pdoxxnts_dm.dll`）

然后 在 `php.ini` 中添加以下配置:

```
[dm]
extension = pdo74nts_dm.dll
extension = php74nts_dm.dll

dm.port=5237

; 是否允许持久性连接

dm.allow_persistent = 1

; 允许建立持久性连接的最大数. -1 为没有限制.

dm.max_persistent = -1

; 允许建立连接的最大数(包括持久性连接). -1 为没有限制.

dm.max_links = -1

; 默认的主机地址

dm.default_host = localhost

; 默认登录的数据库

dm.default_db = SYSTEM

; 默认的连接用户名

dm.default_user = SYSDBA

; 默认的连接口令.

dm.default_pw = SYSDBA

;连接超时，这个参数未实际的用到，等待服务器支持

dm.connect_timeout = 10

;对于各种变长数据类型，每列最大读取的字节数。如果它设置为 0 或是小于 0,那么，读取变长字段时，将显示 NULL 值

dm.defaultlrl = 4096

; 是否读取二进制类型数据，如果它设置为 0，那么二进制将被 NULL 值代替

dm.defaultbinmode = 1

;是否允许检察持久性连接的有效性，如果设置为 ON，那么当重用一个持久性连接时，会检察该连接是否还有效

dm.check_persistent = ON
```

然后 将 `dmdbms/bin` 下 dm开头的所有dll 复制到 `system32` 目录里

### linux

[](#linux)

框架配置
----

[](#框架配置)

`config/database.php`中配置

~~ 'default'='dm', 'dm'=&gt;\[ 'type'=&gt;'dm', 'hostname'=&gt;'localhost', 'hostport'=&gt;5236, 'username'=&gt;'SYSDBA', 'password' =&gt; 'SYSDBA', 'database'=&gt;'blog', 'charset' =&gt; Env::get('database.charset', 'utf8'), 'prefix' =&gt; 'dp\_', \] ~~

特殊用法
----

[](#特殊用法)

### 随机排序

[](#随机排序)

```
$ret = ApiLog::order('[rand]')->limit(10)->select();
```

### 获取兼容模式

[](#获取兼容模式)

```
Db::connect('dm')->getCompatibleMode();
```

### 私有方法

[](#私有方法)

```
\think\db\Dm::procedureName('proc');  // 转换为 `database`.`proc`

```

bug
---

[](#bug)

max(id) bigint 返回了 小数点 dump 函数float 显示了一位小数 var\_dump 没问题

todo
----

[](#todo)

1. - 测试表分区功能
2. - 测试xa事务
3. - 测试mac平台
4. - 测试出一些mysql函数有dm 没有的 并找出替代方案
5. - 写单元测试

> PS:
>
> 经过一轮自测基本使用没问题了，如果你的系统部用到一些mysql 的高级用法 如xa 事务、 分区、锁。 可以大胆的用本库进行迁移测试。希望大家多测试，及时反馈问题给我。 数据库驱动移植也试我第一次尝试，最终的任务是人力和测试字符串替换了。“锁”粗略看了下，比较复杂，貌似不支持行锁。 replace into 对应的 是 merge into 文档里也写的比较复杂

###  Health Score

32

—

LowBetter than 74% of packages

Maintenance48

Moderate activity, may be stable

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

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

Every ~46 days

Recently: every ~57 days

Total

6

Last Release

387d ago

Major Versions

v0.5.1 → v2.0.12024-07-13

v0.6.0 → v2.0.22024-07-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/c0b5f090a9bb92727e9c2e8281d05c2da5f2f9bf66cf1811714a9ffc0e383325?d=identicon)[yangweijie](/maintainers/yangweijie)

---

Top Contributors

[![yangweijie](https://avatars.githubusercontent.com/u/1614114?v=4)](https://github.com/yangweijie "yangweijie (18 commits)")

### Embed Badge

![Health badge](/badges/yangweijie-think-orm-dm/health.svg)

```
[![Health](https://phpackages.com/badges/yangweijie-think-orm-dm/health.svg)](https://phpackages.com/packages/yangweijie-think-orm-dm)
```

###  Alternatives

[topthink/think

the new thinkphp framework

8.0k1.2M12](/packages/topthink-think)[topthink/framework

The ThinkPHP Framework.

2.8k3.2M1.2k](/packages/topthink-framework)[zoujingli/thinkadmin

Application Development Framework

2.3k11.4k](/packages/zoujingli-thinkadmin)[zhongshaofa/easyadmin

基于ThinkPHP6.0和layui的快速开发的后台管理系统。

6589.3k](/packages/zhongshaofa-easyadmin)[jaguarjack/catchadmin

The CatchAdmin Background management

8952.6k](/packages/jaguarjack-catchadmin)[saithink/saiadmin

webman plugin

2639.5k1](/packages/saithink-saiadmin)

PHPackages © 2026

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